(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-24
(45)【発行日】2022-07-04
(54)【発明の名称】異常操作検知装置、異常操作検知方法、およびプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20220627BHJP
【FI】
G06F11/34 138
G06F11/34 152
(21)【出願番号】P 2018100484
(22)【出願日】2018-05-25
【審査請求日】2021-04-22
(73)【特許権者】
【識別番号】504169647
【氏名又は名称】エンカレッジ・テクノロジ株式会社
(74)【代理人】
【識別番号】100115749
【氏名又は名称】谷川 英和
(72)【発明者】
【氏名】中西 崇文
(72)【発明者】
【氏名】廣田 雅直
(72)【発明者】
【氏名】山崎 正雄
(72)【発明者】
【氏名】佐藤 光
【審査官】北川 純次
(56)【参考文献】
【文献】国際公開第2017/154844(WO,A1)
【文献】特開2017-126282(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
システム運用時の情報システムに対する正常な操作を特定する2以上の正常操作情報に関する2以上の正常操作集合に基づく判断元情報が、2以上のいずれかの手順書に対応して格納される判断元情報格納部と、
被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する操作集合を受け付ける受付部と、
前記受付部が受け付けた操作集合に対する手順書に対応する2以上の正常操作集合に基づく判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、
前記異常情報を出力する出力部とを具備する異常操作検知装置。
【請求項2】
前記判断部は、
前記受付部が受け付けた操作集合を用いて、手順書を決定する手順書決定手段と、
前記手順書決定手段が決定した手順書に対応する2以上の正常操作集合を前記判断元情報格納部から取得する正常操作集合選択手段と、
前記正常操作集合選択手段が取得した2以上の正常操作集合を用いて異常情報を取得する判断手段とを具備する請求項1記載の異常操作検知装置。
【請求項3】
前記受付部は、
手順書を識別する手順書識別子をも受け付け、
前記判断部は、
前記受付部が受け付けた手順書識別子で識別される手順書に対応する2以上の正常操作集合を前記判断元情報格納部から取得する正常操作集合選択手段と、
前記正常操作集合選択手段が取得した2以上の正常操作集合を用いて異常情報を取得する判断手段とを具備する請求項1記載の異常操作検知装置。
【請求項4】
前記正常操作集合および前記操作情報は、操作により発生したイベントであり、情報システムが発生させるイベントに関する内部イベント情報も含む請求項1から請求項3いずれか一項に記載の異常操作検知装置。
【請求項5】
前記受付部が受け付けた操作集合は、
前記被検査者が前記情報システムに対して、ログインからログアウトまでの1セッションの間に行った2以上の操作の操作情報を有する情報であり、
前記判断部は、
前記受付部が受け付けた操作集合の全体を、前記判断元情報に対して適用し、異常情報を取得する請求項1から請求項4いずれか一項に記載の異常操作検知装置。
【請求項6】
前記受付部が受け付けた操作集合は、
前記被検査者が前記情報システムに対して行った、連続する2以上の操作の操作情報である連続操作情報を有し、
前記判断部は、
前記連続操作情報を、前記判断元情報格納部の2以上の正常操作集合に対して適用し、異常情報を取得する請求項1から請求項4いずれか一項に記載の異常操作検知装置。
【請求項7】
希な操作を特定する操作情報である1以上の希操作情報が格納される希操作情報格納部をさらに具備し、
前記判断部は、
前記受付部が受け付けた操作集合の中に、前記希操作情報格納部の1以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する請求項1から請求項4いずれか一項に記載の異常操作検知装置。
【請求項8】
前記正常操作集合は、
2以上の正常操作情報から構成される正常操作ベクトルであり、
前記判断部は、
前記受付部が受け付けた操作集合から入力ベクトルを構成し、当該入力ベクトルと前記2以上の正常操作ベクトルとを用いて、異常情報を取得する請求項1から請求項7いずれか一項に記載の異常操作検知装置。
【請求項9】
前記判断元情報は、
前記2以上の正常操作集合を用いて、機械学習のアルゴリズムにより構成された学習器であり、
前記判断部は、
前記受付部が受け付けた操作集合を、機械学習のアルゴリズムにより、前記学習器に適用し異常情報を取得する請求項1から請求項8いずれか一項に記載の異常操作検知装置。
【請求項10】
システム運用時の情報システムに対する正常な操作を特定する2以上の正常操作情報に関する2以上の正常操作集合に基づく判断元情報が、2以上のいずれかの手順書に対応して格納される判断元情報格納部と、受付部と、判断部と、出力部とにより実現される異常操作検知方法であって、
前記受付部が、被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する操作集合を受け付ける受付ステップと、
前記判断部が、前記受付ステップで受け付けられた操作集合に対する手順書に対応する2以上の正常操作集合に基づく判断元情報と、前記受付ステップで受け付けられた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断ステップと、
前記出力部が、前記異常情報を出力する出力ステップとを具備する異常操作検知方法。
【請求項11】
システム運用時の情報システムに対する正常な操作を特定する2以上の正常操作情報に関する2以上の正常操作集合に基づく判断元情報が、2以上のいずれかの手順書に対応して格納される判断元情報格納部にアクセス可能なコンピュータを、
被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する操作集合を受け付ける受付部と、
前記受付部が受け付けた操作集合に対する手順書に対応する2以上の正常操作集合に基づく判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、
前記異常情報を出力する出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2以上の正常な操作の集合である正常操作集合を用いて、受け付けられた操作集合の異常性を判断し、判断結果を出力する異常操作検知装置等に関するものである。
【背景技術】
【0002】
従来、コンピュータの表示画面及び操作、その他の機器の動作を表示画面の動画像と共に多重化して記録し、監査のための証跡として保存して、不正アクセスや操作及び動作を記録・監視する装置があった(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、主に手順書に基づいて行われるシステム運用において、入力された操作列の情報を用いて異常操作を検知することが困難、または煩雑であった。
【0005】
さらに、従来技術では、主に手順書に基づいて行われるシステム運用において、過去の正常な操作列の情報を用いて、入力された操作列に対して、異常操作を検知することが困難、または煩雑であった。
【0006】
なお、一般エリア、アクセスエリア、高セキュリティエリアのセキュリティレベルのうち、システム運用で求められるセキュリティレベルは高セキュリティエリアに相当する。高セキュリティエリアではITシステムの開発者、管理者が操作を実施する。そして、端末を操作する場合、通常、事前に承認を得る必要があり、あらかじめ決められた手順書に則って作業を実施する。
【0007】
しかし、操作の際に使用された手順書に応じた操作列の情報に対して、異常操作を検知することが困難であった。なお、異常操作は、例えば、手順書外の操作であり、例えば、操作ミス、トラブルシューティング、不正操作のうちの1または2種類以上の操作である。
【課題を解決するための手段】
【0008】
本第一の発明の異常操作検知装置は、システム運用時の情報システムに対する正常な操作を特定する2以上の正常操作情報に関する2以上の正常操作集合に基づく判断元情報が、2以上のいずれかの手順書に対応して格納される判断元情報格納部と、被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する操作集合を受け付ける受付部と、受付部が受け付けた操作集合に対する手順書に対応する2以上の正常操作集合に基づく判断元情報と、受付部が受け付けた操作集合とを用いて、操作集合に対する異常性に関する情報である異常情報を取得する判断部と、異常情報を出力する出力部とを具備する異常操作検知装置である。
【0009】
かかる構成により、手順書に基づいて行われるシステム運用において、異常操作を検知できる。
【0010】
また、本第二の発明の異常操作検知装置は、第一の発明に対して、判断部は、受付部が受け付けた操作集合を用いて、手順書を決定する手順書決定手段と、手順書決定手段が決定した手順書に対応する2以上の正常操作集合を判断元情報格納部から取得する正常操作集合選択手段と、正常操作集合選択手段が取得した2以上の正常操作集合を用いて異常情報を取得する判断手段とを具備する異常操作検知装置である。
【0011】
かかる構成により、手順書に基づいて行われるシステム運用において、容易に異常操作を検知できる。
【0012】
また、本第三の発明の異常操作検知装置は、第一の発明に対して、受付部は、手順書を識別する手順書識別子をも受け付け、判断部は、受付部が受け付けた手順書識別子で識別される手順書に対応する2以上の正常操作集合を判断元情報格納部から取得する正常操作集合選択手段と、正常操作集合選択手段が取得した2以上の正常操作集合を用いて異常情報を取得する判断手段とを具備する異常操作検知装置である。
【0013】
かかる構成により、手順書に基づいて行われるシステム運用において、異常操作を検知できる。
【0014】
また、本第四の発明の異常操作検知装置は、第一から第三いずれか1つの発明に対して、正常操作集合および操作情報は、操作により発生したイベントであり、情報システムが発生させるイベントに関する内部イベント情報も含む異常操作検知装置である。
【0015】
かかる構成により、手順書に基づいて行われるシステム運用において、精度高く異常操作を検知できる。
【0016】
また、本第五の発明の異常操作検知装置は、第一から第四いずれか1つの発明に対して、受付部が受け付けた操作集合は、被検査者が情報システムに対して、ログインからログアウトまでの1セッションの間に行った2以上の操作の操作情報を有する情報であり、判断部は、受付部が受け付けた操作集合の全体を、判断元情報に対して適用し、異常情報を取得する異常操作検知装置である。
【0017】
かかる構成により、手順書に基づいて行われるシステム運用において、適切に異常操作を検知できる。
【0018】
また、本第六の発明の異常操作検知装置は、第一から第四いずれか1つの発明に対して、受付部が受け付けた操作集合は、被検査者が情報システムに対して行った、連続する2以上の操作の操作情報である連続操作情報を有し、判断部は、連続操作情報を、判断元情報格納部の2以上の正常操作集合に対して適用し、異常情報を取得する異常操作検知装置である。
【0019】
かかる構成により、手順書に基づいて行われるシステム運用において、適切に異常操作を検知できる。
【0020】
また、本第七の発明の異常操作検知装置は、第一から第四いずれか1つの発明に対して、希な操作を特定する操作情報である1以上の希操作情報が格納される希操作情報格納部をさらに具備し、判断部は、受付部が受け付けた操作集合の中に、希操作情報格納部の1以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する異常操作検知装置である。
【0021】
かかる構成により、手順書に基づいて行われるシステム運用において、適切に異常操作を検知できる。
【0022】
また、本第八の発明の異常操作検知装置は、第一から第七いずれか1つの発明に対して、正常操作集合は、2以上の正常操作情報から構成される正常操作ベクトルであり、判断部は、受付部が受け付けた操作集合から入力ベクトルを構成し、入力ベクトルと2以上の正常操作ベクトルとを用いて、異常情報を取得する異常操作検知装置である。
【0023】
かかる構成により、手順書に基づいて行われるシステム運用において、適切に異常操作を検知できる。
【発明の効果】
【0024】
本発明による異常操作検知装置によれば、手順書に基づいて行われるシステム運用において、異常操作を検知できる。
【図面の簡単な説明】
【0025】
【
図1】実施の形態1における異常操作検知装置Aのブロック図
【
図2】同異常操作検知装置Aの動作例について説明するフローチャート
【
図3】同外れ値検知処理の例説明するフローチャート
【
図4】同新規時系列特徴検知処理の例について説明するフローチャート
【
図5】同希少特徴検知処理の例について説明するフローチャート
【
図6】同学習処理について、説明するフローチャート
【
図7】同判断元情報が蓄積される処理を説明する第一の概念図
【
図8】同判断元情報が蓄積される処理を説明する第二の概念図
【
図9】同異常検知のためのクラスタ選択の処理を説明する概念図
【
図11】同新規時系列特徴による検知の処理を説明する概念図
【
図12】同希少特徴による検知の処理を説明する概念図
【発明を実施するための形態】
【0026】
以下、異常操作検知装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0027】
(実施の形態1)
【0028】
本実施の形態において、ユーザの2以上の正常な操作の集合である正常操作集合を用いて、受け付けられた操作集合の異常性を判断し、判断結果を出力する異常操作検知装置について説明する。なお、操作集合は、ユーザの操作により発生した内部イベントを含んでも良い。また、操作集合は、ログインからログアウトまでの1セッションの操作の集合であることは好適である。
【0029】
また、本実施の形態において、異常性の検知は、例えば、後述する1セッション単位のログデータの外れ値検知、後述する新規な2以上の連続する操作の検知による判断、希な操作の検知による判断等があり得る。
【0030】
また、本実施の形態において、正常操作集合は、2以上のいずれかの手順書に対応しており、受け付けられた操作集合に対する手順書に対応する正常操作集合を用いて、異常性を判断し、判断結果を出力する異常操作検知装置について説明する。
【0031】
さらに、本実施の形態において、機械学習のアルゴリズムを用いて、異常性を判断し、判断結果を出力する異常操作検知装置について説明する。
【0032】
図1は、本実施の形態における異常操作検知装置Aのブロック図である。異常操作検知装置Aは、格納部1、受付部2、処理部3、および出力部4を備える。
【0033】
格納部1は、例えば、判断元情報格納部11、希操作情報格納部12、および手順書情報格納部13を備える。処理部3は、例えば、学習部31、および判断部32を備える。
【0034】
判断部32は、例えば、手順書決定手段321、正常操作集合選択手段322、および判断手段323を備える。
【0035】
格納部1には、各種の情報が格納される。各種の情報とは、例えば、後述する判断元情報、後述する希操作情報、後述する手順書情報である。
【0036】
判断元情報格納部11には、判断元情報が格納される。判断元情報は、異常性の判断に使用される情報である。判断元情報は、2以上の正常操作集合に基づく情報である。正常操作集合は、2以上の正常操作情報に関する情報である。正常操作情報は、システム運用時の情報システムに対する正常な操作を特定する情報である。正常操作情報は、例えば、コマンド名である。正常操作情報は、例えば、操作対象のウィンドウを識別するウィンドウ識別子(例えば、ウィンドウタイトル、ウィンドウIDなど)とユーザがキーボードに入力した情報(例えば、コマンド名、コマンド名と引数[例えば、データベース名、ファイル名、変数名、データ等])とを含む。正常操作情報は、例えば、ユーザの操作により発生した内部イベントを特定する情報を含む。内部イベントは、例えば、OSが発生させるイベント、アプリケーションが発生させるイベントである。
【0037】
判断元情報は、2以上の正常操作集合そのものでも良いし、後述する学習器でも良い。判断元情報は、正常操作集合から構成された2以上の正常操作ベクトルでも良い。また、判断元情報は、正常操作集合から構成された2以上の正常操作ベクトルに加えて、不正の(異常な)操作集合から構成された1以上の異常操作ベクトルを含んでも良い。判断元情報は、2以上の正常操作集合と1以上の異常操作集合とを含む情報でも良い。
【0038】
正常操作集合は、例えば、2以上の正常操作情報から構成されるベクトルである正常操作ベクトルでも良い。正常操作ベクトルは、例えば、2以上の正常操作情報が有する単語(例えば、コマンド名、ファイル名など)の出現頻度を要素として有するベクトルである。正常操作ベクトルは、例えば、2以上の正常操作情報に対して、Bag-of-Wordsを用いてベクトル化した情報である。なお、正常操作集合から正常操作ベクトルを取得するアルゴリズムは問わない。
【0039】
正常操作集合は、例えば、正常な2以上の操作列を示す2以上の正常操作情報である。正常操作集合は、例えば、情報システムに対する操作ログであり、2以上の正常な命令列であり、例えば、「useradd, mkdir, su, passwd、・・・」、「useradd, passwd, usermod・・・」、「touch, sudo, useradd・・・」である。なお、情報システムとは、コンピュータ、コンピュータ上のアプリケーション、コンピュータシステム等であり、例えば、銀行の情報システムである。また、命令列は、通常、時系列の命令列である。
【0040】
判断元情報は、2以上の正常操作集合を用いて、機械学習のアルゴリズムにより構成された学習器であっても良い。なお、学習器は、例えば、後述する学習部31が取得した情報である。
【0041】
また、各正常操作集合は、例えば、手順書に対応付いている。手順書に対応付いていることは、手順書を識別する手順書識別子に対応付いていることでも良いし、手順書のファイルに対応付いていることでも良い。また、手順書とは、情報システムの運用、情報システムの操作に用いられるドキュメントである。手順書は、マニュアルと言っても良い。また、手順書は、例えば、パッチをシステムに適用する際に参照するパッチ適用手順書、操作のログを取得する際に参照するログ取得手順書、ユーザを追加登録する場合に参照するユーザ追加手順書等である。
【0042】
また、2以上の各正常操作集合は、操作に使用された1または2以上の手順書に対応づいて、グループ化されて格納されていることは好適である。2以上の各正常操作集合をグループ化する処理は、2以上の正常操作ベクトルをグループ化する処理であり、例えば、ベクトル間の距離を用いて正常操作ベクトルをグループ化する。かかるグループ化の処理は高知技術であるので、詳細な説明を省略する。なお、かかる処理は、処理部3が行うことは好適である。
【0043】
かかることは、手順書または手順書のグループごとに、正常操作集合を分類することは、以下の操作の特性に基づいており、有効である。つまり、システム運用の現場では手順書を用いた操作が徹底されて行われることが多く、操作内容が似る性質がある。その特性を利用し、収集した操作ログ(操作集合)を用いて、新たに操作した内容と比較し、後述するように、異常操作を検知することは有効である。
【0044】
また、2以上の各正常操作集合は、操作対象のサーバ装置ごとにグループ化されて格納されていても良い。これは、企業におけるサーバ装置は、用途ごとに構築されるケースが多くみられる。そして、サーバ装置ごとに見た場合、行われる業務は、パッチ適用やログ取得等の数種類から10数種類である場合が多い。かかるシステム運用の特性を利用し、操作対象のサーバ装置ごとに正常操作集合をグループ化し、グループごとに正常操作集合を利用して、後述するように、異常操作を検知することは有効である。なお、サーバ装置ごとにグループ化されている場合、例えば、2以上の各正常操作集合は、サーバ装置を識別するサーバ識別子に対応付いている。
【0045】
希操作情報格納部12には、1または2以上の希操作情報が格納される。希操作情報は、希な操作を特定する操作情報である。操作情報は、操作に関する情報である。操作情報は、例えば、操作を特定する命令、使用される情報名(ファイル名、データベース名など)、命令または情報(引数など)を特定するIDである。操作情報は、操作により発生する内部イベントでも良い。
【0046】
希操作情報は、例えば、希な操作を特定する命令である。希操作情報は、例えば、希に使用される情報名でも良い。希操作情報は、例えば、命令または情報(引数など)を特定するIDである。希操作情報格納部12の希操作情報は、例えば、判断元情報格納部11の2以上の正常操作集合から、後述する処理部3により取得された情報である。
【0047】
手順書情報格納部13には、1または2以上の手順書情報が格納される。手順書情報は、手順書に関する情報である。手順書情報は、手順書のファイルでも良いし、手順書のファイルから構成されたベクトルでも良い。手順書情報は、例えば、手順書のファイルに含まれる用語の出現頻度を要素とするベクトルである。手順書情報は、例えば、手順書のファイルをBag-of-Wordsを用いてベクトル化した情報(ベクトル)である。
【0048】
また、手順書情報格納部13に、2以上の手順書情報がグループ化されていても良い。つまり、手順書情報格納部13には、似た2以上の手順書情報がグループ化されていても良い。手順書情報が、例えば、ベクトルである場合、クラスタリングされたベクトルの集合がグループを構成する。なお、似た2以上の手順書情報は、例えば、各手順書情報から構成されたベクトル間の距離の予め決められた条件を満たすほど近いベクトルに対応する2以上の手順書情報である。また、ベクトルの集合を分類し、グループ化する技術は公知技術であるので説明は省略する。また、手順書情報がグループ化されている場合、各グループを代表するベクトルが手順書情報格納部13に格納されていても良い。グループを代表するベクトルは、例えば、グループに属する1以上のベクトルの平均値のベクトルである。
【0049】
受付部2は、各種の指示や情報等を受け付ける。各種の指示や情報等とは、例えば、操作集合、判断指示、学習指示である。操作集合は、被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する情報である。操作集合は、例えば、ログインからログアウトまでの1セッションの操作情報の集合等であるが、予め決められた条件を満たす量の操作の情報の集合でも良い。予め決められた条件を満たす量の操作とは、1時間単位の操作、予め決められた量以上の操作情報等である。なお、被検査者とは、ユーザであり、異常な操作を行ったか否かを検査される者である。
【0050】
判断指示は、操作集合の異常性に関する判断を行う指示である。判断指示は、操作集合または操作集合を特定する情報を含む。判断指示は、手順書識別子を有しても良い。また、判断指示は、サーバ装置を識別するサーバ識別子を有しても良い。
【0051】
学習指示は、2以上の正常操作集合を用いて、後述する学習器を構成する指示である。学習指示は、手順書を特定する情報を含んでも良い。手順書を特定する情報は、例えば、手順書識別子、手順書のグループを特定するグループ識別子である。
【0052】
なお、操作集合は、情報システムに対して被験者が行った操作の集合を、情報システムが有する図示しない記録部が取得し、記録した情報である。操作集合は、被検査者が情報システムに対して、ログインからログアウトまでの1セッションの間に行った2以上の操作の操作情報を有する情報であることは好適である。ただし、操作集合は、1セッションの間の一部の期間の操作の操作情報の情報でも良い。
【0053】
ここで、受け付けとは、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付け、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付けなどを含む概念である。
【0054】
処理部3は、各種の処理を行う。各種の処理とは、例えば、学習部31、判断部32が行う処理である。
【0055】
学習部31は、機械学習のアルゴリズムにより、2以上の正常操作集合に対して学習処理を行い、学習器を構成する。
【0056】
学習部31は、例えば、受付部2が学習指示を受け付けた場合に、当該学習指示に従って、2以上の正常操作集合に対して学習処理を行い、学習器を構成する。
【0057】
なお、学習指示が手順書を特定する情報を含んでいる場合、学習部31は、当該手順書を特定する情報により特定される手順書に対応する2以上の正常操作集合を判断元情報格納部11から取得し、当該2以上の正常操作集合に対して学習処理を行い、学習器を構成することは好適である。また、学習部31は、1または2以上のグループごとに、2以上の正常操作集合を判断元情報格納部11から取得し、当該2以上の正常操作集合に対して学習処理を行い、学習器を構成することは好適である。なお、かかる処理により、手順書ごと、またはグループごとに学習器を構成できる。
【0058】
また、機械学習のアルゴリズムは、例えば、深層学習、SVM、SVR、決定木、ランダムフォレスト等であり、問わない。
【0059】
学習部31は、機械学習のアルゴリズムにより、2以上の正常操作集合(正例)と、2以上の異常操作集合(負例)とを用いて学習処理を行い、学習器を構成しても良い。かかる場合、負例は、予め与えられていることは好適であるが、学習部31が自動生成しても良い。例えば、学習部31は、2以上の各正常操作集合から構成される2以上の各ベクトルとの距離が閾値以上の1以上のベクトルを自動生成する。例えば、学習部31は、2以上の各正常操作集合から構成される2以上のベクトルの平均値のベクトル(2以上のベクトルの要素の平均値を要素とするベクトル)との距離が閾値以上の1以上のベクトルを自動生成する。
【0060】
判断部32は、判断元情報と、受付部2が受け付けた操作集合とを用いて、異常情報を取得する。異常情報は、受付部2が受け付けた操作集合に対する異常性に関する情報である。異常情報は、例えば、異常であることを示す情報、正常であることを示す情報、受付部2が受け付けた操作集合の中の異常な箇所を示す情報等である。異常な箇所を示す情報は、例えば、異常な命令列、希操作情報、受付部2が受け付けた操作集合の中の希操作情報を特定する情報である。異常情報は、例えば、異常性に関するレポートである。異常情報は、例えば、上述したグループごとの異常性に関する情報である。
【0061】
判断部32は、例えば、受付部2が受け付けた操作集合から入力ベクトルを構成し、入力ベクトルと2以上の正常操作ベクトルとを用いて、異常情報を取得する。なお、入力ベクトルは、操作集合ベクトルと言っても良い。
【0062】
判断部32は、例えば、受付部2が受け付けた操作集合に対応する手順書を決定し、手順書に対応する2以上の正常操作集合を用いて異常情報を取得する。
【0063】
判断部32は、例えば、受付部2が受け付けた操作集合を、機械学習のアルゴリズムにより、学習器に適用し異常情報を取得する。
【0064】
判断部32は、例えば、以下の(1)から(3)のうちの1以上の方法で異常を判断する。なお、(1)は外れ値検知、(2)は新規時系列特徴による検知、(3)は希少特徴による検知という。
(1)外れ値検知
【0065】
外れ値検知とは、異常性の判断対象の操作集合の全体が、正常操作集合に対して、外れているか否かを判断することである。
【0066】
判断部32は、例えば、受付部2が受け付けた操作集合の全体を、判断元情報に対して適用し、外れ値に関する異常情報を取得する。
【0067】
判断部32は、例えば、受付部2が受け付けた操作集合の全体から構成されるベクトルである操作集合ベクトルと、2以上の各正常操作集合から構成されるベクトルである各正常操作集合ベクトルとの距離を取得し、距離の平均値が閾値以上であるか否かを判断する。判断部32は、例えば、距離の平均値が閾値以上または閾値より大きい場合は、異常であることを示す異常情報を取得し、距離の平均値が閾値以下または閾値未満である場合は、正常であることを示す異常情報を取得する。
【0068】
また、判断部32は、例えば、2以上の各正常操作集合から構成される正常操作集合ベクトルの平均値を取得し、当該平均値と、操作集合の全体から構成される操作集合ベクトルとの距離を取得し、距離が閾値以上であるか否かを判断する。判断部32は、例えば、距離が閾値以上または閾値より大きい場合は、異常であることを示す異常情報を取得し、距離が閾値以下または閾値未満である場合は、正常であることを示す異常情報を取得する。
【0069】
判断部32は、例えば、受付部2が受け付けた操作集合と、判断元情報格納部11の判断元情報を比較して、lofによる外れ値検知を行っても良い。さらに具体的には、判断部32は、例えば、受付部2が受け付けた操作集合から取得した操作集合ベクトルと、判断元情報格納部11の2以上の各正常操作集合ベクトルとを比較して、lofによる外れ値検知を行っても良い。なお、lofによる外れ値検知は公知技術であるので、説明を省略する。
【0070】
また、判断部32は、例えば、受付部2が受け付けた操作集合の全体を、上述した学習器に適用し、機械学習のアルゴリズムにより異常情報を取得する。なお、学習器が、異常か正常かを分類する学習器である場合、判断部32は、受付部2が受け付けた操作集合の全体を、上述した学習器に適用し、機械学習のアルゴリズムにより、異常か正常かを示す異常情報を取得する。
(2)新規時系列特徴による検知
【0071】
新規時系列特徴による検知とは、異常性の判断対象の操作集合の中に、正常操作集合には出現しない、または出現し難い時系列の操作列の存在に関する異常性の検知である。
【0072】
判断部32は、連続操作情報を、判断元情報格納部11の2以上の正常操作集合に対して適用し、異常情報を取得する。なお、連続操作情報とは、時間的に連続する2以上の操作の操作情報である。連続操作情報は、2以上の操作情報を有する。
【0073】
判断部32は、例えば、受付部2が受け付けた操作集合から、2または3以上の連続する操作列の情報である1または2以上の操作情報を取得し、取得した操作情報が判断元情報格納部11の2以上の正常操作集合に含まれるか否かを検知する。そして、判断部32は、例えば、判断元情報格納部11の2以上の正常操作集合に含まれない新規な連続操作情報の出現数または出現割合を取得する。そして、判断部32は、例えば、かかる出現数または出現割合が閾値以上または閾値より大きい場合、異常であることを示す異常情報を取得し、閾値以下または閾値より小さい場合、正常であることを示す異常情報を取得する。なお、判断部32は、例えば、かかる出現数または出現割合をパラメータとする増加関数を用いて算出した値を異常スコアとして取得しても良い。なお、異常スコアは、異常情報の一例である。また、新規な連続操作情報の出現割合は、例えば、「受付部2が受け付けた操作集合の中の新規な連続操作情報の出現数/受付部2が受け付けた操作集合の中の連続操作情報の数」により算出される。
(3)希少特徴による検知
【0074】
希少特徴による検知とは、異常性の判断対象の操作集合の中に、正常操作集合には出現しない、または出現し難い操作の存在に関する異常性の検知である。
【0075】
判断部32は、受付部2が受け付けた操作集合の中に、希操作情報格納部12の1以上の各希操作情報の存在に関する希操作存在情報を取得し、希操作存在情報を用いて異常情報を取得する。希操作存在情報とは、例えば、希操作情報の含有率(希操作情報の数/操作情報の数)、希操作情報の存在数、希操作情報が存在するか否かなどである。
【0076】
手順書決定手段321は、受付部2が受け付けた操作集合を用いて、手順書を決定する。手順書決定手段321は、例えば、受付部2が受け付けた操作集合からベクトルを構成し、当該ベクトルと、手順書情報格納部13のベクトルである2以上の各手順書情報との距離を算出し、距離が最も小さい手順書情報に対応する手順書を、採用する手順書として決定する。手順書決定手段321は、例えば、受付部2が受け付けた操作集合からベクトルを構成し、当該ベクトルと、手順書情報格納部13に格納されている各グループのベクトルとの距離を算出し、距離が最も小さいグループに対応する手順書を、採用する手順書として決定する。
【0077】
手順書決定手段321は、受付部2が受け付けた手順書識別子を取得することにより、手順書を決定しても良い。
【0078】
正常操作集合選択手段322は、手順書決定手段321が決定した手順書に対応する2以上の正常操作集合を判断元情報格納部11から取得する。かかる場合、正常操作集合は、手順書に対応付いている。正常操作集合選択手段322は、例えば、手順書決定手段321が取得した手順書識別子と対になる2以上の正常操作集合を判断元情報格納部11から取得する。また、正常操作集合選択手段322は、受付部2が受け付けた判断指示に含まれるサーバ識別子と対になる2以上の正常操作集合を判断元情報格納部11から取得しても良い。
【0079】
判断手段323は、正常操作集合選択手段322が取得した2以上の正常操作集合を用いて異常情報を取得する。なお、判断手段323は、手順書決定手段321と正常操作集合選択手段322とを有さず、すべての正常操作集合を用いて、異常情報を取得しても良い。
【0080】
なお、判断手段323が2以上の正常操作集合を用いて異常情報を取得する処理は、上述したので、再度の説明を省略する。判断手段323が2以上の正常操作集合を用いて異常情報を取得する処理は、例えば、上述した(1)は外れ値検知、(2)は新規時系列特徴による検知、(3)は希少特徴による検知である。
【0081】
出力部4は、判断部32が取得した異常情報を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0082】
格納部1、判断元情報格納部11、希操作情報格納部12、および手順書情報格納部13は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0083】
格納部1等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部1等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。
【0084】
処理部3、学習部31、判断部32、手順書決定手段321、正常操作集合選択手段322、および判断手段323は、通常、MPUやメモリ等から実現され得る。処理部3の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0085】
出力部4は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部4は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0086】
次に、異常操作検知装置Aの動作例について、
図2のフローチャートを用いて説明する。
【0087】
(ステップS201)受付部2は、判断指示を受け付けたか否かを判断する。判断指示を受け付けた場合はステップS202に行き、判断指示を受け付けなかった場合はステップS208に行く。
【0088】
(ステップS202)判断部32は、ステップS201で判断指示に対応する操作集合を取得する。判断部32は、例えば、判断指示が有する操作集合を取得する。
【0089】
(ステップS203)判断部32は、ステップS202で取得した操作集合に対して、外れ値検知処理を行う。外れ値検知処理の例について、
図3のフローチャートを用いて説明する。
【0090】
(ステップS204)判断部32は、ステップS202で取得した操作集合に対して、新規時系列特徴による検知処理を行う。新規時系列特徴検知処理の例について、
図4のフローチャートを用いて説明する。
【0091】
(ステップS205)判断部32は、ステップS202で取得した操作集合に対して、希少特徴による検知処理を行う。希少特徴検知処理の例について、
図5のフローチャートを用いて説明する。
【0092】
(ステップS206)処理部3は、ステップS203、ステップS204、およびステップS205で取得した異常情報のうちの1以上の異常情報を用いて出力する異常情報を構成する。
【0093】
(ステップS207)出力部4は、ステップS206で構成された異常情報を出力する。ステップS201に戻る。
【0094】
(ステップS208)受付部2は、学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップS209に行き、学習指示を受け付けなかった場合はステップS201に戻る。
【0095】
(ステップS209)学習部31は、学習処理を行う。ステップS201に戻る。学習処理について、
図6のフローチャートを用いて説明する。
【0096】
なお、
図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0097】
次に、ステップS203の外れ値検知処理の例について、
図3のフローチャートを用いて説明する。
【0098】
(ステップS301)判断部32は、カウンタiに1を代入する。
【0099】
(ステップS302)判断部32は、i番目の正常操作集合が、判断元情報格納部11に存在するか否かを判断する。i番目の正常操作集合が存在する場合はステップS303に行き、存在しない場合はステップS305に。
【0100】
(ステップS303)判断部32は、i番目の正常操作集合を判断元情報格納部11から取得し、i番目の正常操作集合からベクトルを取得する。なお、かかるベクトルは、正常操作ベクトルである。
【0101】
(ステップS304)判断部32は、カウンタiを1、インクリメントする。ステップS302に戻る。
【0102】
(ステップS305)判断部32は、ステップS202で取得された操作集合から操作集合ベクトルを取得する。
【0103】
(ステップS306)判断部32は、ステップS305で取得した操作集合ベクトルが、ステップS303で取得した2以上の正常操作ベクトルに対して、外れ値か否かを判断する。外れ値ある場合はステップS307に行き、外れ値でない場合はステップS308に行く。なお、外れ値か否かは、例えば、lofにより取得される。
【0104】
(ステップS307)判断部32は、変数「第一異常情報」に「異常」を示す値を代入する。上位処理にリターンする。なお、かかる値は、検査対象の操作集合が外れ値であることを示す。
【0105】
(ステップS308)判断部32は、変数「第一異常情報」に「正常」を示す値を代入する。上位処理にリターンする。なお、かかる値は、検査対象の操作集合が外れ値でないことを示す。
【0106】
次に、ステップS204の新規時系列特徴検知処理の例について、
図4のフローチャートを用いて説明する。
【0107】
(ステップS401)判断部32は、カウンタiに1を代入する。
【0108】
(ステップS402)判断部32は、ステップS202で取得された操作集合の中でi番目の連続操作情報が存在するか否かを判断する。i番目の連続操作情報が存在する場合はステップS403に行き、i番目の連続操作情報が存在しない場合はステップS406に行く。
【0109】
(ステップS403)判断部32は、ステップS202で取得された操作集合の中からi番目の連続操作情報を取得する。なお、判断部32は、例えば、2以上の操作情報の列である操作集合の中から、カレントの操作情報をずらしながら、n個(nは2または3以上の自然数)の連続する操作情報の列である連続操作情報を取得する。なお、ずらす間隔は、通常、1であるが、n等でも良い場合があり得る。
【0110】
(ステップS404)判断部32は、ステップS403で取得したi番目の連続操作情報の、判断元情報格納部11の2以上の正常操作集合における出現回数を取得する。
【0111】
(ステップS405)判断部32は、カウンタiを1、インクリメントする。ステップS402に戻る。
【0112】
(ステップS406)判断部32は、ステップS404で取得した連続操作情報の出現回数を用いて、第二異常情報を取得する。上位処理にリターンする。
【0113】
なお、判断部32は、例えば、ステップS404で取得した出現回数が第一の閾値以下または第一の閾値未満(例えば、0)である連続操作情報の数を取得し、当該数が第二の閾値以上または第二の閾値より大きい場合に、変数「第二異常情報」に「異常」を示す値を代入する。また、判断部32は、例えば、ステップS404で取得した出現回数が第一の閾値以下または第一の閾値未満(例えば、0)である連続操作情報の数を取得し、当該数が第二の閾値以下または第二の閾値未満である場合に、変数「第二異常情報」に「正常」を示す値を代入する。
【0114】
また、判断部32は、例えば、ステップS404で取得した出現回数が第一の閾値以下または第一の閾値未満(例えば、0)である連続操作情報の数を取得し、当該数を用いて、検査対象の操作集合における割合を取得し、当該割合が第二の閾値以上または第二の閾値より大きい場合に、変数「第二異常情報」に「異常」を示す値を代入する。また、判断部32は、例えば、ステップS404で取得した出現回数が第一の閾値以下または第一の閾値未満(例えば、0)である連続操作情報の割合を取得し、当該割合が第二の閾値以下または第二の閾値未満である場合に、変数「第二異常情報」に「正常」を示す値を代入する。
【0115】
次に、ステップS205の希少特徴検知処理について、
図5のフローチャートを用いて説明する。
【0116】
(ステップS501)判断部32は、初期化処理を行う。初期化処理は、変数「希操作回数」に0を代入する処理を含む。
【0117】
(ステップS502)判断部32は、取得した操作集合(検査対象の操作集合)の中の各要素の出現回数を取得する。なお、要素は、通常、操作情報である。
【0118】
(ステップS503)判断部32は、カウンタiに1を代入する。
【0119】
(ステップS504)判断部32は、取得した操作集合(検査対象の操作集合)の中に、i番目の要素が存在するか否かを判断する。i番目の要素が存在する場合はステップS505に行き、i番目の要素が存在しない場合はステップS509に行く。
【0120】
(ステップS505)判断部32は、取得した操作集合(検査対象の操作集合)の中のi番目の要素を取得する。
【0121】
(ステップS506)判断部32は、ステップS505で取得したi番目の要素が希操作情報であるか否かを判断する。i番目の要素が希操作情報である場合はステップS507に行き、i番目の要素が希操作情報でない場合はステップS508に行く。i番目の要素が希操作情報であるか否かは、例えば、希操作情報格納部12にi番目の要素が存在するか否かにより行う。つまり、判断部32は、i番目の要素が希操作情報格納部12に存在する場合は、i番目の要素が希操作情報であると判断する。また、判断部32は、i番目の要素が判断元情報格納部11の2以上の正常操作集合に存在する数または割合を算出し、数または割合が閾値以下または閾値より小さい場合に、i番目の要素が希操作情報であると判断する。
【0122】
(ステップS507)判断部32は、変数「希操作回数」を1、インクリメントする。
【0123】
(ステップS508)判断部32は、カウンタiを1、インクリメントする。ステップS504に戻る。
【0124】
(ステップS509)判断部32は、変数「希操作回数」の値が条件を満たすか否かを判断する。条件を満たす場合はステップS510に行き、条件を満たさない場合はステップS511に行く。なお、ここで、判断部32は、変数「希操作回数」の値が予め決められた条件を満たすほど大きいか否かを判断する。
【0125】
(ステップS510)判断部32は、変数「第三異常情報」に「異常」であることを示す値を代入する。上位処理にリターンする。変数「第三異常情報」が「異常」であることを示す値である場合、希少な操作が多数行われたことを示す。
【0126】
(ステップS511)判断部32は、変数「第三異常情報」に「正常」であることを示す値を代入する。上位処理にリターンする。
【0127】
次に、ステップS209の学習処理について、
図6のフローチャートを用いて説明する。
【0128】
(ステップS601)学習部31は、カウンタiに1を代入する。
【0129】
(ステップS602)学習部31は、i番目の正常操作集合が存在するか否かを判断する。i番目の正常操作集合が存在する場合はステップS603に行き、i番目の正常操作集合が存在しない場合はステップS605に行く。
【0130】
(ステップS603)学習部31は、i番目の正常操作集合から正常操作ベクトルを構成する。
【0131】
(ステップS604)学習部31は、カウンタiを1、インクリメントする。ステップS602に戻る。
【0132】
(ステップS605)学習部31は、カウンタjに1を代入する。
【0133】
(ステップS606)学習部31は、j番目の異常操作集合が存在するか否かを判断する。j番目の異常操作集合が存在する場合はステップS603に行き、j番目の異常操作集合が存在しない場合はステップS605に行く。
【0134】
(ステップS607)学習部31は、j番目の異常操作集合から異常操作ベクトルを構成する。
【0135】
(ステップS608)学習部31は、カウンタjを1、インクリメントする。ステップS602に戻る。
【0136】
(ステップS609)学習部31は、2以上の正常操作ベクトル、および1以上の異常操作ベクトルを用いて、学習処理を行い、操作集合が正常か否かを判断するための学習器を構成する。
【0137】
(ステップS610)学習部31は、ステップS609で構成された学習器を判断元情報格納部11に蓄積する。上位処理にリターンする。
【0138】
なお、
図6のフローチャートにおいて、学習部31は、手順書ごと、または手順書のグループごと、またはサーバ装置ごとに学習器を構成し、蓄積することは好適である。
【0139】
以下、本実施の形態における異常操作検知装置Aの具体的な動作例について説明する。まず、判断元情報格納部11に判断元情報が蓄積される2つの具体例(具体例1、具体例2)について説明する。次に、異常検知のためのクラスタ選択の処理を具体例3で説明する。次に、外れ値検知、新規時系列特徴による検知、希少特徴による検知の各々の異常検知を、具体例4、具体例5、具体例6を用いて説明する。
(具体例1)
【0140】
判断元情報格納部11に判断元情報が蓄積される具体例1を、
図7を参照して説明する。具体例1において、ユーザが、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、システム運用のための各種の正常な操作を行った、とする。なお、ユーザは、手順書をもとに作業を実施した、とする。
【0141】
そして、図示しない端末装置では、ユーザが手順書をもとに入力した正常な操作の操作情報(ウィンドウタイトル、およびキーボード入力)を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Aにログデータと、サーバ識別子とが送信された、とする。なお、ログデータは、正常操作集合であり、1セッション(ログインからログアウトまで)分の操作集合である。また、サーバ識別子は、ユーザが操作したシステムを構成するサーバ装置であり、端末装置に格納されていた、とする。
【0142】
次に、異常操作検知装置Aの受付部2は、端末装置から正常操作集合とサーバ識別子とを受信する。
【0143】
次に、異常操作検知装置Aの処理部3は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、サーバ識別子に対応付けて、判断元情報格納部11に蓄積する。
【0144】
また、処理部3は、各サーバ識別子に対応付いている2以上の正常操作集合ベクトルを、クラスタリングする。そして、かかるクラスタリングの結果、各サーバ識別子に対応付いている2以上の正常操作集合ベクトルは、手順書ごとにグループ化される、とする。
【0145】
なお、端末装置から異常操作検知装置Aにログデータと、サーバ識別子と、手順書識別子とが送信されても良い。かかる場合、異常操作検知装置Aの受付部2は、端末装置から正常操作集合とサーバ識別子と手順書識別子とを受信する。そして、処理部3は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、当該正常操作集合ベクトルを、受信されたサーバ識別子と手順書識別子とに対応付けて、判断元情報格納部11に蓄積する。
【0146】
以上の処理が、多数のユーザの操作に対して行われた、とする。すると、異常操作検知装置Aの判断元情報格納部11には、2以上の正常操作集合ベクトルが蓄積される。なお、正常操作集合ベクトルは、判断元情報の一例である。
【0147】
以上の具体例1の処理の概要を
図7に示す。
図7では、Bag-of-Wordsにより、正常操作集合に対して単語出現頻度行列化が行われ、例えば、操作情報「ls」が「3」、「ping」が「2」とする正常操作集合ベクトルが構成される。また、正常操作集合ベクトルに対して、サーバ識別子と手順書識別子とに対応するクラスタリングが行われる。また、
図7において、一のユーザが複数の手順書に基づいて一のサーバ装置に対して操作を行っているが、一のユーザが複数の手順書に基づいて複数のサーバ装置に対して操作を行っても良いし、複数のユーザが一のサーバ装置に対して操作を行っても良いし、複数のユーザが一の操作を行っても良い。
(具体例2)
【0148】
判断元情報格納部11に判断元情報が蓄積される具体例2を、
図8を参照して説明する。 具体例2において、手順書情報格納部13に2以上の手順書情報が格納されている、とする。ここで、手順書情報は、例えば、操作の手順が記載されたファイルである。
【0149】
そして、処理部3は、2以上の各手順書情報を、例えば、Bag-of-Wordsでベクトル化する。そして、処理部3は、取得した手順書のベクトルを、クラスタリングし、似た手順書の集合を生成し、クラスタリングされた(例えば、手順書のグループ識別子に対応付けられた)手順書のベクトルを手順書情報格納部13に蓄積する。なお、手順書情報をベクトル化するアルゴリズムは問わない。
【0150】
また、具体例2において、ユーザが、システム運用のために、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、各種の正常な操作を行った、とする。なお、ユーザは、ある手順書をもとに作業を実施した、とする。
【0151】
そして、図示しない端末装置では、ユーザが手順書をもとに入力した正常な操作の操作情報(ウィンドウタイトル、およびキーボード入力)を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Aにログデータが送信された、とする。なお、ログデータは、正常操作集合であり、1セッション(ログインからログアウトまで)分の操作集合である。
【0152】
次に、異常操作検知装置Aの受付部2は、端末装置から正常操作集合を受信する。
【0153】
次に、異常操作検知装置Aの処理部3は、正常操作集合を、例えば、Bag-of-Wordsを用いて、ベクトル化し、正常操作集合ベクトルを構成し、判断元情報格納部11に蓄積する。
【0154】
次に、処理部3は、取得した正常操作集合ベクトルと、手順書情報格納部13の手順書のベクトルの集合から、取得した正常操作集合ベクトルに対応する手順書のベクトルの集合を決定する。処理部3は、例えば、手順書のグループごとに、手順書のベクトルの代表値である代表ベクトルを取得し、正常操作集合ベクトルと最も距離が近い代表ベクトルと対応付ける。なお、代表ベクトルは、例えば、手順書の各ベクトルの各要素の平均値からなる要素の集合である。
【0155】
以上の処理が、ユーザの多数の操作に対して行われた、とする。すると、異常操作検知装置Aの判断元情報格納部11には、2以上の正常操作集合ベクトルが、手順書に対応付いて蓄積される。
【0156】
以上の具体例1の処理の概要を
図8に示す。
図8において、手順書情報からベクトルが構成され、正常操作集合(ログデータ)からベクトルが構成されている。また、手順書のベクトルがクラスタリングされている。さらに、クラスタリングされた手順書のベクトルの集合と、正常操作集合ベクトルの集合とが対応付いている。
(具体例3)
【0157】
異常検知のためのクラスタ選択の処理を説明する具体例3を、
図9を参照して説明する。 具体例3において、被験者が、システム運用のために、端末装置を用いてサーバ装置にログインし、ログアウトするまでの期間、手順書Aに基づいて、各種の操作を行った、とする。
【0158】
そして、端末装置では、被験者が手順書Aをもとに入力した操作の操作情報(ウィンドウタイトル、およびキーボード入力)を記録し、ログデータを蓄積した、とする。そして、端末装置から異常操作検知装置Aにログデータを含む判断指示が送信された、とする。なお、ログデータは、検査対象の操作集合であり、1セッション(ログインからログアウトまで)分の操作集合である。また、サーバ識別子は、ユーザが操作したシステムを構成するサーバ装置である。
【0159】
次に、異常操作検知装置Aの受付部2は、端末装置から操作集合を含む判断指示を受信する。
【0160】
判断部32は、判断指示に対応する操作集合を取得する。次に、判断部32は、操作集合から、例えば、Bag-of-Wordsを用いて、操作集合ベクトルを構成する。
【0161】
次に、判断部32の手順書決定手段321は、当該操作集合ベクトルを用いて、当該操作集合ベクトルに最も近似するベクトル群である、手順書Aのベクトル群を決定する。つまり、手順書決定手段321は、手順書Aを決定する。
【0162】
次に、正常操作集合選択手段322は、手順書Aに対応する2以上の正常操作集合を判断元情報格納部11から取得する。つまり、正常操作集合選択手段322は、手順書Aによるログの情報を取得する。
【0163】
以上の具体例3の処理の概念を示す図は、
図9である。
(具体例4)
【0164】
外れ値検知の処理を説明する具体例4を、
図10を参照して説明する。
【0165】
判断部32は、例えば、具体例3で取得した手順書Aに対応する2以上の各正常操作集合から正常操作集合ベクトルを取得する。かかる2以上の正常操作集合ベクトル(学習データと言っても良い)は、
図10の1001である、とする。なお、
図10の1001は、正常ログ群である。
【0166】
次に、判断部32は、端末装置から受信された操作集合から操作集合ベクトルを取得する。かかる操作集合ベクトルは、
図10の1002である、とする。なお、
図10の1002は、新規ログである。
【0167】
そして、判断部32は、操作集合ベクトル1002と2以上の正常操作集合ベクトル1001とを比較して、lofによる外れ値検知を行い、操作集合ベクトル1002は外れ値である、と判断した、とする。
【0168】
次に、判断部32は、変数「第一異常情報」に「異常」を示す値を代入する。
(具体例5)
【0169】
新規時系列特徴による検知の処理を説明する具体例5を、
図11を参照して説明する。具体例5において、例えば、判断部32は、1セッション内のログデータを特徴抽出したものをbigramによる時系列データにする。そして、判断部32は、過去の学習データには存在しない時系列の特徴数をカウントし、閾値を超えたか否かで異常検知する、とする。
【0170】
判断部32は、例えば、具体例3で取得した手順書Aに対応する2以上の正常操作集合を取得する。
【0171】
次に、判断部32は、端末装置から受信された新規のログである操作集合の中から、2つの操作情報である連続操作情報を、1つずつ操作情報をずらしながら取得していく。そして、判断部32は、各連続操作情報が、2以上の正常操作集合の中に出現するか否かを判断する。なお、
図11において、新規のログである操作集合の中の「E→B」の連続操作情報は、2以上の正常操作集合の中に出現しない。
【0172】
次に、判断部32は、2以上の正常操作集合の中に出現しなかった連続操作情報の数を算出する。
【0173】
次に、判断部32は、2以上の正常操作集合の中に出現しなかった連続操作情報の数が閾値以上であるか否かを判断する。ここで、判断部32は、閾値未満である、と判断した、とする。
【0174】
次に、判断部32は、変数「第二異常情報」に「正常」を示す値を代入する。
(具体例6)
【0175】
希少特徴による検知の処理を説明する具体例6を、
図12を参照して説明する。具体例6において、例えば、判断部32は、1セッション内のログデータを特徴抽出し、過去の学習データに、閾値A以下の数しか存在しない特徴の含有率が閾値Bを超えたか否かで異常検知する、とする。なお、特徴は、ここでは、操作情報である。
【0176】
まず、判断部32は、具体例3で取得した手順書Aに対応する2以上の正常操作集合から各操作情報と出現回数との組の情報を、多数取得する。そして、判断部32は、出現回数が閾値A以下の操作情報(ここでは「Z」)を希操作情報として、希操作情報格納部12に蓄積する。
【0177】
次に、判断部32は、端末装置から受信された新規のログである操作集合の中から、順に2以上の各操作情報を取得する。そして、判断部32は、2以上の各操作情報に対して、希操作情報格納部12に存在するか否かを判断し、希操作情報格納部12に存在する希操作情報に該当する操作情報の割(含有率)を算出する。
【0178】
次に、判断部32は、含有率が閾値B以上または閾値Bより大きいか否かを判断する。ここで、判断部32は、含有率が閾値B以上または閾値Bより大きいと判断し、変数「第三異常情報」に「異常」を示す値を代入する。
【0179】
そして、処理部3は、例えば、取得した第一異常情報、第二異常情報、第三異常情報のうち、例えば、「異常」であると判断された第一異常情報、第三異常情報とを用いて、出力する異常情報を構成した、とする。
【0180】
次に、出力部4は、構成された異常情報を出力する。かかる出力例は、
図13である。
図13において、新規ログが、外れ値であること、および新規ログ内の希少特徴(Z)が明示されている。
【0181】
以上、本実施の形態によれば、システム運用において、異常操作を検知できる。その結果、監査者の労力が削減できる。
【0182】
また、本実施の形態によれば、1ログ内での異常度合の高い箇所も特定し、全般的に監査量の削減が期待できる。
【0183】
なお、本実施の形態において、主に、1セッション内のログデータを用いて、異常性を検知した。しかし、例えば、異常操作検知装置Aが、被験者が操作する端末装置から操作情報をリアルタイムに受信し、蓄積された2以上の操作情報に対して異常性を検知する処理を行っても良い。なお、異常操作検知装置Aが異常性を検知する処理を開始するトリガーは、受信された2以上の操作情報の量が予め決められた条件を満たすほど多くなった場合、または被験者の操作時間が予め決められた条件を満たすほど長くなった場合等が好適である。
【0184】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、システム運用時の情報システムに対する正常な操作を特定する2以上の正常操作情報に関する2以上の正常操作集合に基づく判断元情報が、2以上のいずれかの手順書に対応して格納される判断元情報格納部にアクセス可能なコンピュータを、被検査者が情報システムに対して行った操作を特定する2以上の操作情報を有する操作集合を受け付ける受付部と、前記受付部が受け付けた操作集合に対する手順書に対応する2以上の正常操作集合に基づく判断元情報と、前記受付部が受け付けた操作集合とを用いて、当該操作集合に対する異常性に関する情報である異常情報を取得する判断部と、前記異常情報を出力する出力部として機能させるためのプログラムである。
【0185】
また、
図14は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の異常操作検知装置A等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
図14は、このコンピュータシステム300の概観図であり、
図15は、システム300のブロック図である。
【0186】
図14において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0187】
図15において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、MPU3013、CD-ROMドライブ3012に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0188】
コンピュータシステム300に、上述した実施の形態の異常操作検知装置A等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
【0189】
プログラムは、コンピュータ301に、上述した実施の形態の異常操作検知装置A等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0190】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0191】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0192】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0193】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0194】
以上のように、本発明にかかる異常操作検知装置は、システム運用において、異常操作を検知できるという効果を有し、等として有用である。
【符号の説明】
【0195】
A 異常操作検知装置
1 格納部
2 受付部
3 処理部
4 出力部
11 判断元情報格納部
12 希操作情報格納部
13 手順書情報格納部
31 学習部
32 判断部
321 手順書決定手段
322 正常操作集合選択手段
323 判断手段