(57)【特許請求の範囲】
【請求項１】
情報システムに対する攻撃が行われる過程において前記情報システムで観測されるイベントと、前記イベントが観測される前の攻撃の進展段階であるイベント前段階と、前記イベントが観測された後の攻撃の進展段階であるイベント後段階とが記述されるイベント段階情報を、複数のイベントに対して記憶するイベント段階情報記憶部と、
前記情報システムで観測された観測イベントを通知する観測イベント通知情報を受信する観測イベント通知情報受信部と、
前記観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報に基づき、前記情報システムで今後観測されると予測されるイベントを観測予測イベントとして抽出する観測予測イベント抽出部とを有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、更に、
前記観測イベント通知情報受信部により観測イベント通知情報が受信され、前記観測予測イベント抽出部により観測イベントのイベント後段階が取得される度に、取得されたイベント後段階を記憶する段階記憶部を有し、
前記イベント段階情報記憶部は、
１つ以上のイベント前段階が記述されているイベント段階情報を記憶しており、
前記観測予測イベント抽出部は、
前記観測イベントのイベント後段階に基づいて検索したイベント段階情報に記述されているイベント前段階と前記段階記憶部に記憶されているイベント後段階とを比較し、検索したイベント段階情報に記述されている全てのイベント前段階に合致するイベント後段階が前記段階記憶部に記憶されている場合に、検索したイベント段階情報に記述されているイベントを、前記観測予測イベントとして抽出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記観測予測イベント抽出部は、
前記観測イベントのイベント後段階に基づいて検索したイベント段階情報に記述されているイベント前段階と前記段階記憶部に記憶されているイベント後段階とを比較した結果、検索したイベント段階情報に記述されている少なくとも１つのイベント前段階に対して、合致するイベント後段階が前記段階記憶部に記憶されていない場合に、
合致するイベント後段階が前記段階記憶部に記憶されていないイベント前段階に合致するイベント後段階が記述されているイベント段階情報を検索し、
検索したイベント段階情報に記述されているイベント前段階と前記段階記憶部に記憶されているイベント後段階とを比較し、
検索したイベント段階情報に記述されている全てのイベント前段階に合致するイベント後段階が前記段階記憶部に記憶されている場合に、検索したイベント段階情報に記述されているイベントを、前記観測予測イベントとして抽出し、
検索したイベント段階情報に記述されている少なくとも１つのイベント前段階に対して、合致するイベント後段階が前記段階記憶部に記憶されていない場合に、合致するイベント後段階が前記段階記憶部に記憶されていないイベント前段階に合致するイベント後段階が記述されているイベント段階情報を検索することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記イベント段階情報記憶部は、
イベントが観測された際の前記情報システムに対する攻撃の確度を示す攻撃確度値が記述されるイベント段階情報を記憶し、
前記情報処理装置は、更に、
前記観測予測イベント抽出部により観測予測イベントが抽出される度に、抽出された観測予測イベントが記述されているイベント段階情報に、抽出された観測予測イベントに先行して抽出された観測予測イベントが前記情報システムで観測される度に累算された攻撃確度値の累算値を対応付けるイベント段階情報加工部を有し、
前記観測予測イベント抽出部は、
前記観測イベント通知情報受信部により受信された観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を検索し、検索したイベント段階情報に攻撃確度値の累算値が対応付けられている場合に、
検索したイベント段階情報に対応付けられている攻撃確度値の累算値に、検索したイベント段階情報に記述されている攻撃確度値を累算して、攻撃確度値の累算値を更新し、
更新後の攻撃確度値の累算値が攻撃判定閾値を超えている場合に、前記情報システムに対する攻撃が行われていると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記イベント段階情報加工部は、
前記観測予測イベント抽出部により前記観測イベントに基づいて新たな観測予測イベントが抽出された場合に、前記新たな観測予測イベントが記述されているイベント段階情報に、前記更新後の攻撃確度値の累算値を対応付けることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記観測予測イベント抽出部は、
前記情報システムに対する攻撃が行われていると判定した場合に、前記情報システムに対する攻撃が行われていることを通知する通知メッセージを出力することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記観測イベント通知情報受信部は、
観測イベントの種別と、観測イベントを特定する変数値とを通知する観測イベント通知情報を受信し、
前記イベント段階情報加工部は、
前記観測イベント通知情報受信部により観測イベント通知情報が受信され、前記観測予測イベント抽出部により観測予測イベントが抽出される度に、
抽出された観測予測イベントが記述されているイベント段階情報に、抽出された観測予測イベントに先行して抽出された観測予測イベントが前記情報システムで観測される度に累算された攻撃確度値の累算値を対応付けるとともに、抽出された観測予測イベントの抽出に用いられた観測イベント通知情報で通知された変数値を対応付け、
前記観測予測イベント抽出部は、
前記観測イベント通知情報受信部により受信された観測イベント通知情報で通知されている観測イベントの種別に対応するイベントが記述されているイベント段階情報を検索し、検索したイベント段階情報に対応付けられている変数値と前記観測イベント通知情報で通知されている変数値とを比較し、
検索したイベント段階情報に対応付けられている変数値と前記観測イベント通知情報で通知されている変数値とが一致する場合に、検索したイベント段階情報に対応付けられている攻撃確度値の累算値に、検索したイベント段階情報に記述されている攻撃確度値を累算して、攻撃確度値の累算値を更新することを特徴とする請求項４に記載の情報処理装置。
【請求項８】
前記イベント段階情報記憶部は、
前記情報システムに含まれる機器に所定の監視操作を開始させるための監視操作開始閾値が記述されているイベント段階情報を記憶し、
前記観測予測イベント抽出部は、
更新後の攻撃確度値の累算値が前記監視操作開始閾値を超えている場合に、前記情報システムに含まれる機器に前記監視操作を開始させることを特徴とする請求項４に記載の情報処理装置。
【請求項９】
前記観測予測イベント抽出部は、
推論ロジックが記述されている推論ルール情報を参照して、検索したイベント段階情報に記述されているイベント前段階と前記段階記憶部に記憶されているイベント後段階とを比較することを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
前記観測予測イベント抽出部は、
前記情報システムの構成が記述されている構成情報を参照して、検索したイベント段階情報に記述されているイベント前段階と前記段階記憶部に記憶されているイベント後段階とを比較することを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
前記イベント段階情報記憶部は、
前記イベント前段階及び前記イベント後段階の少なくともいずれかが述語論理により記述されているイベント段階情報を記憶していることを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
前記イベント段階情報記憶部は、
いずれかのイベントに対して、イベント前段階が不成立であっても観測予測イベントを抽出する処理を実施する旨を示す識別子である処理実施識別子が記述されているイベント段階情報を記憶し、
前記観測予測イベント抽出部は、
前記観測イベント通知情報受信部により受信された観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を検索し、
検索したイベント段階情報に処理実施識別子が記述されている場合に、検索したイベント段階情報に記述されているイベント前段階が不成立であっても、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報に基づき、前記観測予測イベントを抽出し、
検索したイベント段階情報に処理実施識別子が記述されていない場合に、検索したイベント段階情報に記述されているイベント前段階が不成立であれば、観測予測イベントを抽出する処理を行わないことを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記情報システムは、
前記観測イベント通知情報で通知されなかったイベントを含む前記情報システムでのイベントを導出可能なイベント導出情報を蓄積しており、
前記観測予測イベント抽出部は、
前記観測イベント通知情報受信部により受信された観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を検索し、
前記情報システムに蓄積されているイベント導出情報に基づき、検索したイベント段階情報に記述されているイベント前段階の成立有無の判定を行い、
前記イベント前段階が成立している場合に、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報に基づき、前記観測予測イベントを抽出することを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
前記イベント段階情報記憶部は、
イベントが観測された際の前記情報システムに対する攻撃の確度を示す攻撃確度値が記述されるイベント段階情報を記憶し、
前記観測予測イベント抽出部は、
前記情報システムに蓄積されているイベント導出情報に基づき、検索したイベント段階情報に記述されているイベント前段階の成立有無の判定を行った結果、前記イベント前段階が成立している場合に、
前記情報システムに蓄積されているイベント導出情報を解析して前記イベント段階情報記憶部に記憶されている複数のイベント段階情報の中から１つ以上のイベント段階情報を選択し、選択したイベント段階情報に記述されている攻撃確度値と、検索したイベント段階情報に記述されている攻撃確度値とを累算して、攻撃確度値の累算値を得ることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記情報処理装置は、更に、
前記イベント段階情報に記述される攻撃確度値を、前記観測イベント通知情報受信部による前記観測イベント通知情報の受信頻度に基づき決定する攻撃確度値決定部を有することを特徴とする請求項４又は１４に記載の情報処理装置。
【請求項１６】
前記情報処理装置は、更に、
前記情報システムから前記構成情報を収集する構成情報収集部を有することを特徴とする請求項１０に記載の情報処理装置。
【請求項１７】
情報システムに対する攻撃が行われる過程において前記情報システムで観測されるイベントと、前記イベントが観測される前の攻撃の進展段階であるイベント前段階と、前記イベントが観測された後の攻撃の進展段階であるイベント後段階とが記述されるイベント段階情報を、複数のイベントに対して記憶するコンピュータが行う情報処理方法であって、
前記コンピュータが、前記情報システムで観測された観測イベントを通知する観測イベント通知情報を受信し、
前記コンピュータが、前記観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を検索し、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を検索し、検索したイベント段階情報に基づき、前記情報システムで今後観測されると予測されるイベントを観測予測イベントとして抽出することを特徴とする情報処理方法。
【請求項１８】
情報システムに対する攻撃が行われる過程において前記情報システムで観測されるイベントと、前記イベントが観測される前の攻撃の進展段階であるイベント前段階と、前記イベントが観測された後の攻撃の進展段階であるイベント後段階とが記述されるイベント段階情報を、複数のイベントに対して記憶するコンピュータに、
前記情報システムで観測された観測イベントを通知する観測イベント通知情報を受信する観測イベント通知情報受信処理と、
前記観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を検索し、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を検索し、検索したイベント段階情報に基づき、前記情報システムで今後観測されると予測されるイベントを観測予測イベントとして抽出する観測予測イベント抽出処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システムに対する攻撃を検知する技術に関する。
【背景技術】
【０００２】
従来のＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）に代表される攻撃検知システムは、単一のイベントが発生した時点で、情報システムに対する攻撃が行われていると判断していた。
しかし、近年マルウェアにより端末が乗っ取られ、マルウェアが端末のユーザに成りすまして行う攻撃が主流になりつつある。
このため、昨今では、単一のイベントだけでは情報システムに対する攻撃が行われていると判定することが難しくなってきている。【０００３】
単一のイベントでは攻撃が行われているかどうかの判定が難しい場合に、一連の攻撃活動によって発生することが予想されるイベント列（攻撃シナリオ）を定義し、攻撃シナリオに合致するようにイベントが発生した場合に、攻撃が行われているとみなす方式が提案されている（例えば特許文献１）。【０００４】
また、検知したい攻撃事象を根とし、攻撃事象の前段で発生しうる事象を節又は葉に持つロジックツリーを定義し、発生した事象をロジックツリー上にマッピングした結果、攻撃事象が成立した場合に攻撃が行われているとみなす方式が提案されている（例えば特許文献２）。【０００５】
また、侵入検知装置からの攻撃通知に対して事前条件と結果を定義しておき、複数の攻撃通知が上がった時に、先行して上がった攻撃通知の結果が、後続の攻撃通知の事前条件を満足させるとき、これらの攻撃通知には関連があるとみなす方式も提案されている（例えば非特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４０２０９１２号
【特許文献２】特開２００６−３５０５４３
【非特許文献】
【０００７】
【非特許文献１】Ｎｉｎｇ，  Ｐｅｎｇ，  Ｙｕｎ  Ｃｕｉ，  ａｎｄ  Ｄｏｕｇｌａｓ  Ｓ．  Ｒｅｅｖｅｓ．  “Ｃｏｎｓｔｒｕｃｔｉｎｇ  ａｔｔａｃｋ  ｓｃｅｎａｒｉｏｓ  ｔｈｒｏｕｇｈ  ｃｏｒｒｅｌａｔｉｏｎ  ｏｆ  ｉｎｔｒｕｓｉｏｎ  ａｌｅｒｔｓ．”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ９ｔｈ  ＡＣＭ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｓｅｃｕｒｉｔｙ．  ＡＣＭ，  ２００２．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、例えば特許文献１に示される攻撃検知システムでは、攻撃判定の基準となる攻撃シナリオを事前に定義しておく必要がある。
発生し得る攻撃シナリオは、攻撃の順番や想定する攻撃手法を若干入れ替えるだけで無数に発生するため、全ての攻撃シナリオを網羅することは困難である。
また、新たな監視対象装置の導入や、新たな攻撃手法の発見などにより、発生するイベントに追加があった場合、既存のシナリオ全てに変更を加えなければならないという課題がある。【０００９】
また、特許文献２に示される攻撃検知システムも、発生するイベントに追加があった場合に、既存のロジックツリーに変更を加えなければならないという課題がある。【００１０】
非特許文献１の方法では、これらの制約は無いものの、まだ次のような課題が残っている。
ユーザに成りすまして行われる攻撃を検知するためには、時として監視対象装置に非常に負荷がかかるような監視や、大量の誤検知を生み出す可能性がある監視を実施しなければならない場合がある。
このような監視を常時実施することは計算機コストあるいは運用コストが必要であるため現実的ではない。
そのためこのような監視は、監視がどうしても必要な場合（監視すればイベントを検知できる可能性が高い場合）に限り、かつ監視対象を極力限定して（例えば特定の端末だけに監視対象を絞って）行うことが望まれる。
しかし、非特許文献１では、次にどのような攻撃通知が起きそうかを予想することは無いため、このような、必要に応じて監視設定を変更することはできない。【００１１】
この発明は、上記のような課題を解決することを主な目的としており、事前に攻撃シナリオやロジックツリーを用意しなくても、情報システムで今後観測されるイベントを予測することができる構成を実現することを主な目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る情報処理装置は、
情報システムに対する攻撃が行われる過程において前記情報システムで観測されるイベントと、前記イベントが観測される前の攻撃の進展段階であるイベント前段階と、前記イベントが観測された後の攻撃の進展段階であるイベント後段階とが記述されるイベント段階情報を、複数のイベントに対して記憶するイベント段階情報記憶部と、
前記情報システムで観測された観測イベントを通知する観測イベント通知情報を受信する観測イベント通知情報受信部と、
前記観測イベント通知情報で通知されている観測イベントが記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報から前記観測イベントのイベント後段階を取得し、取得した前記観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を前記イベント段階情報記憶部から検索し、検索したイベント段階情報に基づき、前記情報システムで今後観測されると予測されるイベントを観測予測イベントとして抽出する観測予測イベント抽出部とを有することを特徴とする。
【発明の効果】
【００１３】
本発明では、観測イベントが記述されているイベント段階情報を検索し、検索したイベント段階情報から観測イベントのイベント後段階を取得し、観測イベントのイベント後段階に合致するイベント前段階が記述されているイベント段階情報を検索し、検索したイベント段階情報に基づき、情報システムで今後観測されると予測されるイベントを抽出する。
このため、事前に攻撃シナリオやロジックツリーを用意しなくても、情報システムで今後観測されるイベントを予測することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係る攻撃検知装置の構成例を示す図。
【図３】実施の形態１に係る攻撃予測方式の概要を示す図。
【図４】実施の形態１に係る攻撃活動定義情報の例を示す図。
【図５】実施の形態１に係る攻撃活動定義情報の例を示す図。
【図６】実施の形態１に係る攻撃活動状況情報の例を示す図。
【図７】実施の形態１に係る攻撃検知装置の動作例を示すフローチャート図。
【図８】実施の形態１に係る達成事象データベースの例を示す図。
【図９】実施の形態１に係る推論ルールデータベースの例を示す図。
【図１０】実施の形態１に係る攻撃活動状況情報検索処理の詳細を示すフローチャート図。
【図１１】実施の形態１に係る検索サブルーチンの詳細を示すフローチャート図。
【図１２】実施の形態１に係る検索サブルーチンの詳細を示すフローチャート図。
【図１３】実施の形態１に係る事前条件未達情報削除処理の詳細を示すフローチャート図。
【図１４】実施の形態１に係る攻撃発生判定処理の詳細を示すフローチャート図。
【図１５】実施の形態１に係る達成事象算出・登録処理の詳細を示すフローチャート図。
【図１６】実施の形態１に係る派生達成事象算出処理の詳細を示すフローチャート図。
【図１７】実施の形態１に係る攻撃活動予測処理の詳細を示すフローチャート図。
【図１８】実施の形態１に係る実行可能活動探索処理の詳細を示すフローチャート図。
【図１９】実施の形態１に係る実行可能活動探索処理の詳細を示すフローチャート図。
【図２０】実施の形態１に係る攻撃検知装置のハードウェア構成例を示す図。
【図２１】実施の形態２に係る攻撃活動定義情報の例を示す図。
【図２２】実施の形態２に係る事前条件未達情報削除処理の詳細を示すフローチャート図。
【図２３】実施の形態３に係るシステム構成例を示す図。
【図２４】実施の形態３に係る事前条件未達情報削除処理の詳細を示すフローチャート図。
【図２５】実施の形態３に係る事前条件未達情報削除処理の詳細を示すフローチャート図。
【図２６】実施の形態３に係る過去イベント検索処理の詳細を示すフローチャート図。
【図２７】実施の形態３に係る過去イベント検索処理の詳細を示すフローチャート図。
【図２８】実施の形態４に係るシステム構成例を示す図。
【図２９】実施の形態５に係るシステム構成例を示す図。
【図３０】実施の形態２に係るイベント列を示す図。
【発明を実施するための形態】
【００１５】
実施の形態１．
本実施の形態では、事前に攻撃シナリオやツリーを網羅的に用意しなくても、一連の攻撃活動が発生した場合に攻撃を検知可能とする攻撃検知装置を説明する。
また、新たな監視装置の導入や、新たな攻撃手法の発見などにより、発生するイベントに追加があった場合にも、柔軟に対応できるようにする攻撃検知装置を説明する。
さらに、常時実施するには高コストな監視を、必要な時に限って実施できるようにする攻撃検知装置を説明する。
【００１６】
図１は、本実施の形態に係るシステム構成例を示す。
図１において、攻撃検知装置１０１は、ネットワーク１２３を介して、情報システムを構成する機器である監視対象装置と接続されている。
攻撃検知装置１０１は、情報処理装置の例に相当する。
【００１７】
図１では、例として攻撃検知装置１０１は２台の監視対象装置１１６、１１９に接続されているが、攻撃検知装置１０１に接続する監視対象装置の台数は２台に限定されるものではない。
監視対象装置としては、ＩＤＳ、ファイアウォール、認証サーバ、ファイルサーバ、ＳＩＥＭ（Ｓｅｃｕｒｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｖｅｎｔ  Ｍａｎａｇｅｍｅｎｔ）などが考えられるが、監視対象装置はこれらに限定されるものではない。
各監視対象装置内には、監視対象装置が観測したイベント（観測イベントともいう）を通知する観測イベント通知情報を生成する機能（イベント生成部１１８、１２１）と、生成された観測イベント通知情報を攻撃検知装置１０１に送信する機能（イベント送信部１１７、１２０）が含まれている。
なお、監視対象装置が観測したイベントには、監視対象装置内で発生したイベントも含まれる。
つまり、観測イベント通知情報は、監視対象内で発生したイベントも通知する。
【００１８】
図２は、攻撃検知装置１０１の構成例を示す。
【００１９】
イベント受信部１０８は、監視対象装置１１６、１１９から送信されてきた観測イベント通知情報を受信する。
なお、以下では、「観測イベント通知情報を受信する」ことを、「イベントを受信する」とも表記する。
【００２０】
攻撃活動状況情報検索部１０７は、受信した観測イベント通知情報をもとに、該当する攻撃活動状況情報（後述）を検索もしくは新規に作成する。
【００２１】
攻撃発生判定部１０６は、観測イベントに対応する攻撃活動状況情報から攻撃の発生有無を判定する。
判定の結果、情報システムに対する攻撃が行われていると判断した場合には、攻撃発生判定部１０６は、表示部１１５を通じてユーザに攻撃が行われている旨の通知を行う。
【００２２】
攻撃活動予測部１０５は、受信した観測イベント通知情報から、もし観測イベントが一連の攻撃の１ステップとして実行されたものであるならば情報システム（監視対象装置１１６、１１９）で今後観測される可能性のあるイベント（観測予測イベント）を予測する。
攻撃活動予測部１０５が予測したイベントは、攻撃活動候補記憶部１０４によって記憶される。
【００２３】
推論実施部１０３は、攻撃活動予測部１０５等から呼び出され、述語論理等の推論演算を実施する。
【００２４】
達成事象算出・登録部１０２は、観測イベントが記述されている攻撃活動状況情報の記述内容をもとに、述語論理式で達成事象を生成し、生成した達成事象を達成事象データベース１０９に登録する。
【００２５】
推論ルールデータベース１１０には、あらかじめ管理者によって推論ルールが格納されている。
推論ルールには推論ロジックが記述されており、推論実施部１０３は推論ロジックを参照して推論を実施する。
【００２６】
攻撃活動定義情報データベース１１１は、攻撃活動定義情報（後述）と呼ばれる攻撃活動を定義する情報を格納している。
攻撃活動定義情報は、イベント段階情報の例に相当する。
【００２７】
構成情報データベース１１２には、情報システムの構成に関する情報である構成情報が格納されている。
構成情報には、例えばホスト名とＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの対応関係や、ユーザ名とユーザが所属するグループとの対応関係などが記述されている。
【００２８】
構成情報・推論ルール編集部１１３は、構成情報データベース１１２や、推論ルールデータベース１１０の内容を登録し、また、更新する。
【００２９】
攻撃活動定義情報編集部１１４は、攻撃活動定義情報データベース１１１内の攻撃活動定義情報を追加・削除・修正するためのユーザインタフェースを提供する。
【００３０】
イベント生成設定変更部１２２は、予測されたイベントを検出するために監視対象装置１１６、１１９に監視設定を変更するよう要求する。
【００３１】
なお、攻撃活動候補記憶部１０４及び攻撃活動定義情報データベース１１１は、イベント段階情報記憶部の例に相当する。
また、達成事象データベース１０９は、段階記憶部の例に相当する。
また、イベント受信部１０８は、観測イベント通知情報受信部の例に相当する。
また、推論実施部１０３、攻撃活動予測部１０５、攻撃発生判定部１０６、攻撃活動状況情報検索部１０７、イベント生成設定変更部１２２は、観測予測イベント抽出部の例に相当する。
また、攻撃活動予測部１０５は、イベント段階情報加工部の例にも相当する。
【００３２】
次に、本実施の形態に係る動作について説明する。
攻撃検知装置１０１は、監視対象装置１１６、１１９から送信されてきた観測イベント通知情報から、観測イベントが攻撃に起因して発生したと仮定した場合に、次に監視対象装置１１６、１１９で観測される可能性のあるイベントを予測する。
そして、攻撃検知装置１０１は、一定回数以上において予測が現実のものとなった場合に、攻撃が発生したとみなす。
以下では、イベントの予測方式の概略を、図３、図４及び図５を用いながら説明する。
【００３３】
図３は、本実施の形態に係るイベント予測方式の概要を示す図である。
図中の要素２０１〜２０６は攻撃活動定義情報を示している。
図４及び図５は、攻撃活動定義情報の例を示す。
図４の攻撃活動定義情報３０１のように、攻撃活動定義情報は、事前条件３０３、イベント３０４、達成事象３０８、攻撃確度３０９で構成されている。
また、図５の攻撃活動定義情報３０２のように、攻撃活動定義情報は、監視設定３１７を含む場合もある。
【００３４】
事前条件３０３には、攻撃発生時にイベント３０４が発生するための前提条件が述語論理の形式で記述されている。
つまり、事前条件３０３には、イベント３０４が観測される前の攻撃の進展段階（イベント前段階）が記述されている。
例えば図４の符号３１０で示す述語論理は、事前条件として、「ＡがＨにログインしている」段階であることを表している。
なお、符号３１０で示されるＡ、Ｈは変数であり、観測イベントから得られた値などによって具体的な値（例えば“ｕｓｅｒ００１”等）に束縛される。
【００３５】
イベント３０４は、情報システムに対する攻撃が行われる過程において情報システムで観測されるイベントである。
イベント３０４に対して、イベント発生源３０５、イベント種別３０６、イベントパラメータ３０７が定義されている。
イベント発生源３０５は、攻撃活動定義情報３０１が対象とするイベント発生源を示している。
符号３１１は、発生源として許される値を示しており、この例では変数Ｈによって事前条件３１０と関連付けられている（「＄Ｈ」の冒頭にあるドルマーク（＄）は、Ｈが変数であることを示している）。
イベント種別３０６は、攻撃活動定義情報３０１が対象としているイベントの種別を指定している。
具体的なイベント種別は符号３１２のように指定される。
イベントパラメータ３０７は、イベントのパラメータを示す。
イベントパラメータ３０７では、攻撃活動定義情報３０１が対象とする値が指定されている。
図４に示した例では、ＵＳＥＲという名称のパラメータが符号３１０で示されている変数Ａと同じ値をとることが求められている。
【００３６】
観測イベント通知情報では、図４の攻撃活動定義情報３０１と同様に、イベント発生源、イベント種別、イベントパラメータが通知される。
図４の攻撃活動定義情報３０１では、イベント発生源３０５、イベントパラメータ３０７の各変数の値は特定されていないが、観測イベント通知情報では、イベント発生源、イベントパラメータの各変数の値が特定されている。
【００３７】
達成事象３０８は、攻撃活動定義情報３０１の符号３０５〜３０７の項目に合致するイベントが発生した時に、攻撃者が達成した事象を述語論理で示している。
つまり、達成事象３０８には、符号３０５〜３０７の項目に合致するイベントが観測された後の攻撃の進展段階（イベント後段階）が記述されている。
図４の例では、「ユーザＡがホストＨの機密を入手した」段階であることが示されている。
【００３８】
攻撃確度３０９は、攻撃活動定義情報３０１の符号３０５〜３０７の項目に合致するイベントが発生した時の、情報システムに対する攻撃の確度を示している。
図４の例では符号３１５で示すように、確度値を０．５と定義している。
なお、図５の符号３１６に示すようにアンダースコア（“＿”）一文字で示される変数は、任意の値をとれることを示している。
【００３９】
図５の監視設定３１７は、コマンド３１８、監視対象装置３１９、起動確度３２３及びコマンドパラメータ３２０で構成されている。
コマンド３１８は、攻撃活動定義情報３０２で定義されているイベントを観測するために監視対象装置に監視設定を変更させるために使用するコマンドである。
監視対象装置３１９は、コマンドの送信先の監視対象装置を指定する。
コマンドの送信先の監視対象装置が変数で表されている場合は、続く述語論理（３２２）を満たす値が選択される。
起動確度３２３は、監視設定を変更するために、最低限必要となる累積の攻撃確度値（後述）を示す。
起動確度３２３は、監視対象装置に所定の監視操作を開始させるための閾値であり、監視操作開始閾値の例に相当する。
コマンドパラメータ３２０は、コマンドに付与するパラメータ情報である。
具体的な情報は、符号３２１に示されるように名称＝値で指定される。
【００４０】
図３に戻り、本実施の形態における攻撃予測方式を説明する。
図３は、攻撃活動定義情報２０５に記述されているイベント２２０にマッチするイベントが監視対象装置１１６又は監視対象装置１１９で観測された状況を示している。
イベント２２０にマッチするイベントが観測されると、攻撃検知装置１０１は、観測されたイベントと同じイベント２２０が記述されている攻撃活動定義情報２０５を検索する。
次に、攻撃検知装置１０１は、検索した攻撃活動定義情報２０５に記述されている達成事象に依存している、他の攻撃活動定義情報を検索する。
ここで、攻撃活動定義情報Ａが攻撃活動定義情報Ｂに依存しているとは、攻撃活動定義情報Ａの事前条件の一部または全部が、攻撃活動定義情報Ｂの達成事象によって満たされることを意味する。
つまり、攻撃活動定義情報Ａが攻撃活動定義情報Ｂに依存しているとは、攻撃活動定義情報Ｂの達成事象が、事前条件として攻撃活動定義情報Ａに記述されていることを意味する。
図３では、このような依存関係を実線矢印２０７〜２１１で示している。
具体的には、攻撃活動定義情報２０４は、攻撃活動定義情報２０５にのみ依存している。
また、攻撃活動定義情報２０１は、攻撃活動定義情報２０２と攻撃活動定義情報２０５に依存している。
また、攻撃活動定義情報２０２は、攻撃活動定義情報２０３と攻撃活動定義情報２０６に依存している。
なお、破線矢印２１２〜２１６は、攻撃検知装置１０１による攻撃活動定義情報の検索方向を示している。
【００４１】
攻撃検知装置１０１は、攻撃活動定義情報２０５に記述されている達成事象に依存している、他の攻撃活動定義情報２０１、２０４を検索すると、次に、既に攻撃活動定義情報２０１、２０４の各々ついて、全ての事前条件が満たされているかどうかをチェックする。
攻撃活動定義情報２０４では、観測されたイベントにより得られる達成事象以外に事前条件が無いので、全ての事前条件が満たされている。
そして、攻撃検知装置１０１は、攻撃活動定義情報２０４に記載されているイベント２１９を、次に発生し得るイベント（観測予測イベント）の一つとして抽出する。
一方、攻撃活動定義情報２０１では、観測されたイベントにより得られる達成事象以外に事前条件があるので、全ての事前条件が満たされている訳ではない。
そして、攻撃検知装置１０１は、満たされていない事前条件を満たすような達成事象が定義されている攻撃活動定義情報（図３の例では攻撃活動定義情報２０２）を検索する。
さらに、攻撃検知装置１０１は、攻撃活動定義情報２０２の事前条件が全て満たされているかどうかをチェックする。
図３の例では、攻撃活動定義情報２０２の事前条件は２つあるが、２つの事前条件はどちらも満たされていない。
このため、攻撃検知装置１０１は、それぞれの事前条件を満たすような達成事象が定義されている攻撃活動定義情報（図３の例では攻撃活動定義情報２０３と攻撃活動定義情報２０６）を検索する。
攻撃検知装置１０１は、このように再帰的に攻撃活動定義情報を検索し、既に全ての事前条件が満たされている攻撃活動定義情報を見つけたら、その攻撃活動定義情報に定義されているイベントを次に発生し得るイベント（観測予測イベント）として抽出する（図３ではイベント２１７とイベント２１８を抽出する）。
抽出されたイベントは、後述する攻撃活動状況情報に記述され、攻撃活動状況情報が攻撃検知装置１０１内で保持される。
【００４２】
次に、攻撃活動状況情報を、図６を参照して説明する。
図６に示す通り、攻撃活動状況情報４０１は、攻撃活動定義情報４０２、束縛済み変数情報４０３、累積攻撃確度４０４で構成されている。
攻撃活動定義情報４０２は、図４及び図５で示した攻撃活動定義情報と同一である。
束縛済み変数情報４０３は、攻撃活動定義情報中の各変数が束縛されている値（変数値）を格納しているテーブルである。
束縛済み変数情報４０３は、変数名４０５と束縛値４０６の２列で構成されている。
累積攻撃確度４０４には、攻撃活動状況情報４０１が生成された時点における累積の攻撃確度値が格納されている。
図６に示すように、攻撃活動状況情報４０１では、イベントに関連する束縛値（変数値）と、累算された攻撃確度値とが、攻撃活動定義情報４０２（イベント段階情報）に対応付けられている。
【００４３】
図７を参照しながら、より具体的に本発明本実施の形態に係る攻撃検知装置１０１の動作について説明する。
図７は、本実施の形態に係る攻撃検知装置１０１の動作の概要を示すフローチャートである。
【００４４】
Ｓ５０２で、イベント受信部１０８が、監視対象装置から観測イベント通知情報を受信する。
前述したように、観測イベント通知情報では、図４の攻撃活動定義情報３０１のイベント発生源３０５、イベント種別３０６、イベントパラメータ３０７に対応させて、イベント発生源、イベント種別、イベントパラメータの値が特定されている。
【００４５】
次に、Ｓ５０３で、攻撃活動状況情報検索部１０７が、観測イベント通知情報で通知される観測イベント（イベント種別、イベント発生源、イベントパラメータ）に合致する攻撃活動状況情報４０１を攻撃活動候補記憶部１０４内において検索する。
具体的には、攻撃活動状況情報検索部１０７は、観測イベント通知情報で通知される観測イベントのイベント種別に合致するイベント種別が攻撃活動定義情報４０２のイベント種別（図４のイベント種別３０５）の欄に記述され、観測イベント通知情報で通知される観測イベントを特定する変数値（イベント発生源の変数値とイベントパラメータの変数値）に合致する変数値が束縛済み変数情報４０３に記述されている攻撃活動状況情報４０１を検索する。
【００４６】
なお、観測イベントに合致する攻撃活動状況情報４０１が攻撃活動候補記憶部１０４内に存在しない場合は、攻撃活動状況情報検索部１０７は、当該観測イベントのイベント種別が記述されている攻撃活動定義情報を検索する。
そして、攻撃活動状況情報検索部１０７は、検索した攻撃活動定義情報に観測イベント通知情報で通知されたイベント発生源の変数値とイベントパラメータの変数値を束縛済み変数情報４０３に設定して新たな攻撃活動状況情報を生成する。
【００４７】
Ｓ５０４では、攻撃発生判定部１０６が、攻撃活動状況情報４０１の累積攻撃確度４０４の値に、攻撃活動状況情報４０１内の攻撃活動定義情報４０２に記述されている攻撃確度の値（図４の攻撃確度３０９に相当）を加算して、累積攻撃確度４０４の値を更新する。
【００４８】
Ｓ５０５では、攻撃発生判定部１０６が、Ｓ５０３で更新された累積攻撃確度４０４の値と攻撃判定閾値とを比較する。
【００４９】
累積攻撃確度４０４の値が、攻撃判定閾値よりも大きかった場合は、Ｓ５０６において、攻撃発生判定部１０６は、表示部１１５を通じてユーザに攻撃の発生を通知する。
【００５０】
Ｓ５０７以降は、次に発生する可能性のあるイベントを予測するための処理である。
【００５１】
Ｓ５０７では、攻撃活動状況情報検索部１０７が、Ｓ５０３で得られた攻撃活動状況情報４０１で達成される事象を、攻撃活動状況情報４０１内の達成事象及び束縛済み変数情報から求め、求めた事象に依存する攻撃活動定義情報を検索する。
【００５２】
Ｓ５０８では、推論実施部１０３が、検索の結果見つかった攻撃活動定義情報の事前条件が既に成立しているかを確認する。
具体的には、推論実施部１０３は、攻撃活動定義情報の事前条件の全てについて、合致する達成事象が達成事象データベースに登録されているかどうかを判断する。
【００５３】
攻撃活動定義情報の事前条件の全てが既に成立しているならば、この攻撃活動定義情報に記述されているイベントが次に観測されると予測されるイベントである。
攻撃活動予測部１０５が、Ｓ５１０において、この攻撃活動定義情報から攻撃活動状況情報を生成し、生成した攻撃活動状況情報を攻撃活動候補記憶部１０４に登録する。
これにより、次に観測されると予測されるイベントが記述された攻撃活動状況情報が攻撃活動候補記憶部１０４に登録される。
なお、攻撃活動予測部１０５は、具体的には、攻撃活動定義情報に、Ｓ５０３で更新された累積攻撃確度４０４の値と、Ｓ５０２で受信された観測イベント通知情報に記述されている変数値とを対応付けて、新たな攻撃活動状況情報を生成する。
【００５４】
一方、いずれかの事前条件が未成立だった場合は、Ｓ５０９で、攻撃活動状況情報検索部１０７が、事前条件を満たす達成事象が記述されている攻撃活動定義情報を検索する。
Ｓ５１１において、そのような攻撃活動定義情報が存在しないことが判明した場合、攻撃活動予測部１０５は、次に観測されるイベントの予測は行わない。
そして、再びＳ５０２にて、イベント受信部１０８が新たな観測イベント通知情報の到着を待つ。
一方、Ｓ５１１で、事前条件を満たす達成事象が記述されている攻撃活動定義情報が見つかった場合には、攻撃活動予測部１０５が、再びＳ５０８において、見つけた攻撃活動定義情報の事前条件が成立しているかを確認する。
このようにしてＳ５０８からＳ５１１までを繰り返すことで、図３で示したようなイベント予測が行われる。
【００５５】
事前条件が成立しているかどうかは、推論実施部１０３で判断される。
本実施の形態に係る推論実施部１０３では、達成事象データベース１０９、推論ルールデータベース１１０、構成情報データベース１１２に述語論理の形で記述された情報に基づき事前条件が成立しているか否かの判断を行う。
達成事象データベース１０９には、図８の符号６０１に示すように、達成した事象を表す述語論理が格納されている。
例えば、符号６０２はユーザ“ａｌｉｃｅ”がホスト“ｈｏｓｔ００１”にログインした、という事象を示している。
構成情報データベース１１２も同様に情報システムの構成に関する情報が述語論理として格納される。
推論ルールデータベース１１０には、常に成立するような推論ルールが記録される。
推論ルールデータベース１１０は、図９の符号７０１に示すように、ゴール７０２と条件７０３の二つの列で構成されている。
ゴール７０２には、条件７０３が成立した時に何が成立するかが定義される。
ゴール７０２、条件７０３ともに述語論理を用いて定義される。
符号７０４、７０５は推論ルールデータベース１１０に格納される情報の例を示している。
この例では、ファイルＦの読取権限を持つグループがＧであり、ユーザＵがグループＧに属している（７０５）ならば、ユーザＵはファイルＦを読むことが可能である（７０４）旨を表している。
【００５６】
次に、図７で示した各処理について、より詳細に説明する。
はじめに図７のＳ５０３の詳細を図１０〜図１３に示すフローチャートを用いながら説明する。
図１０〜図１３の処理は攻撃活動状況情報検索部１０７で実行される。
【００５７】
先ず、攻撃活動状況情報検索部１０７は、受信された観測イベント通知情報で通知されている観測イベント（イベント種別、イベント発生源、イベントパラメータ）を変数Ｅに格納する。
【００５８】
次に、Ｓ８０３で、攻撃活動状況情報検索部１０７は、攻撃活動候補記憶部１０４に記憶されている攻撃活動状況情報の一覧を取得する。
【００５９】
次に、Ｓ８０４で、攻撃活動状況情報検索部１０７は、検索サブルーチン（後述）を呼び出し、観測イベントに合致する攻撃活動状況情報の検索を行う。
検索サブルーチンの検索結果は二つの集合からなる。
一つは検索によってヒットした既存の攻撃活動状況情報４０１であり、Ｓ８０４では変数Ｈｉｔに格納される。
もう一つは変数Ｈｉｔに含まれる攻撃活動状況情報４０１の複製であり、攻撃活動状況情報４０１に含まれる束縛済み変数情報４０３が、観測イベントに含まれていた内容によって更新された後のものである。
Ｈｉｔに含まれている攻撃活動状況情報４０１は既に事前条件が成立しているため、Ｓ８０５において当該攻撃活動状況情報４０１は攻撃活動候補記憶部１０４から削除される。
もし、攻撃活動状況情報４０１中の攻撃活動定義情報４０２に監視設定３１７が定義されていた場合には、攻撃活動状況情報検索部１０７は、監視設定３１７の解除を、イベント生成設定変更部１２２を通じて監視コマンド設定対象の監視対象装置に送信する。
【００６０】
次に、Ｓ８０６において、攻撃活動状況情報検索部１０７は、攻撃活動定義情報データベース１１１に記憶された攻撃活動定義情報の一覧をロードする。
次に、Ｓ８０７において、攻撃活動状況情報検索部１０７は、集合ＣＬを初期化する。
【００６１】
Ｓ８０８とＳ８１２はループを示している。
Ｓ８０８は、ロードされた全ての攻撃活動定義情報に対しループ内の処理が行われることを示している。
ループを回る毎に変数Ｄに各攻撃活動定義情報が代入される。
【００６２】
Ｓ８０９、Ｓ８１０では、攻撃活動状況情報検索部１０７は、変数Ｄを雛型として新たな攻撃活動状況情報を作成している。
作成した新たな攻撃活動状況情報はＳ８１１において、Ｓ８０７で初期化された集合ＣＬに格納される。
【００６３】
Ｓ８１３では検索サブルーチンが呼び出され、上記のように作成された集合ＣＬ内の攻撃活動状況情報から、受信した観測イベントに合致する攻撃活動状況情報が検索される。
しかし、検索された攻撃活動状況情報の中には事前条件が満たされていないものが含まれる可能性があるため、攻撃活動状況情報検索部１０７は、Ｓ８１４において事前条件未達情報削除処理（後述）を呼出す。
そして、攻撃活動状況情報検索部１０７は、検索にヒットした攻撃活動状況情報から事前条件を満たしていない攻撃活動状況情報を取り除いた結果を、再び集合Ｒｅｔ２に代入する。
最後に、攻撃活動状況情報検索部１０７は、Ｓ８０４で得られた集合Ｒｅｔと、Ｓ８１４で得られた集合Ｒｅｔ２の和集合をとり、和集合を呼び出し元へ返す（Ｓ８１５）。
【００６４】
次に、図１１、図１２を参照しながら検索サブルーチン（図１０のＳ８０４、Ｓ８１３）の処理について説明する。
図１１、図１２は、検索サブルーチンの詳細を示すフローチャートである。
図１１、図１２の検索サブルーチンは、図２に図示していない、攻撃活動状況情報検索部１０７の内部要素である検索サブルーチン実行部が行う。
【００６５】
初めに、検索サブルーチン実行部は、Ｓ９０１において、引数として受信した観測イベントＥ及び検索範囲の攻撃活動状況情報の集合ＣＬを受け取る。
【００６６】
Ｓ９０２において、戻り値を格納する変数が初期化された後、Ｓ９０３から始まるループで集合ＣＬ内の各攻撃活動状況情報Ｃが観測イベントＥに合致するかの確認が行われる。
ループでは、検索サブルーチン実行部は、まずＳ９０４において確認対象の攻撃活動状況情報Ｃを複製し、複製した攻撃活動状況情報Ｃを変数Ｃ’に格納する。
Ｓ９０５から始まるループは、ループ変数ａｔｔｒに、集合｛“イベント発生源”、“イベント種別”｝の各要素が代入されることを示している。
Ｓ９０６で、確認対象の攻撃活動状況情報Ｃ’内の攻撃活動定義情報で定義されているａｔｔｒに対応する要素の値が定数ならば、処理はＳ９０７に分岐し、変数ｖａｌに定数値が代入される。
ａｔｔｒに対応する要素の値が定数でなければ、処理はＳ９０９に分岐し、検索サブルーチン実行部は、この要素の値として参照されている変数が束縛済みかどうかを、確認対象の攻撃活動状況情報Ｃ’内の束縛済み変数情報を参照して確認する。
もし変数が束縛済みであれば、処理はＳ９１０に分岐し、変数ｖａｌに、当該変数が束縛されている値が代入される。
もし変数がまだ束縛されていない状態であったならば、処理はＳ９１１に分岐し、検索サブルーチン実行部は、当該変数を、観測イベントＥの対応する値で束縛するよう、確認対象の攻撃活動状況情報Ｃ’内の束縛済み変数情報を更新する。
Ｓ９０７及びＳ９１０のように、当該変数に対して既に何らかの値が割り当てられていた場合には、Ｓ９０８において、検索サブルーチン実行部は、その値が観測イベントＥの対応する値と一致するかどうかを比較する。
もし一致しない場合（Ｓ９０８でＮＯ）には、検索サブルーチン実行部は、確認対象の攻撃活動状況情報Ｃ’は観測イベントＥに合致しないと判断し、Ｓ９１８を経て、次の攻撃活動状況情報に対する確認へと移る。
【００６７】
検索サブルーチン実行部が、Ｓ９０８において確認対象の攻撃活動状況情報Ｃ’のイベント発生源及びイベント種別が、観測イベントＥのイベント発生源及びイベント種別と一致することを確認したならば（Ｓ９０８でＹＥＳ）、処理はＳ９１３の（Ａ）を経由して図１２のＳ１００１に移る。
【００６８】
図１２では、確認対象の攻撃活動状況情報Ｃ’内の攻撃活動定義情報に含まれるイベントパラメータが、観測イベントＥのイベントパラメータに合致するかどうかが確認される。
処理の流れはＳ９０５からＳ９１２に示した内容と殆ど同一であるが、比較対象がイベントパラメータになっている点だけが異なる。
なお、Ｓ１００３やＳ１００５などで使われている括弧（“［“、”］”）表記は、括弧の左側に位置する変数から、括弧内の変数が示すイベントパラメータを取り出す操作を意味している。
確認対象の攻撃活動状況情報Ｃ’のイベントパラメータと観測イベントＥのイベントパラメータとが一致していることが確認されたならば、Ｓ１０１０の（Ｂ）を経て、処理が図１１のＳ９１４へと戻る。
検索サブルーチン実行部が、確認対象の攻撃活動状況情報Ｃ’のイベントパラメータと観測イベントＥのイベントパラメータとが一致していないことを確認した場合は、処理が、Ｓ１０１１の（Ｃ）を経て図１１のＳ９１７へと戻る。
処理が図１１のＳ９１５に到達した時点で、確認対象の攻撃活動状況情報Ｃ’は観測イベントＥに合致するとみなされ、確認対象の攻撃活動状況情報Ｃ’はＳ９１５、Ｓ９１６において戻り値となる集合に格納される。
全ての攻撃活動状況情報に対して確認が終了したら、検索サブルーチン実行部は、Ｓ９１９にて戻り値集合を呼び出し元へ返し、処理を終了する。
【００６９】
次に、図１３を参照しながら事前条件未達情報削除処理（図１０のＳ８１４）について説明する。
図１３は、事前条件未達情報削除処理の詳細を示すフローチャートである。
図１３の事前条件未達情報削除処理は、図２に図示していない、攻撃活動状況情報検索部１０７の内部要素である事前条件未達情報削除処理部が行う。
【００７０】
事前条件未達情報削除処理部は、Ｓ１１０１において調査対象とする攻撃活動状況情報の集合ＣＬを引数として呼び出される。
【００７１】
Ｓ１１０２で、戻り値となる変数が初期化された後、Ｓ１１０３から始まるループにより、攻撃活動状況情報の集合ＣＬ内の各攻撃活動状況情報に対し事前条件が成立しているかどうかが確認される。
【００７２】
Ｓ１１０４では、事前条件未達情報削除処理部が、確認対象である攻撃活動状況情報Ｃの攻撃活動定義情報から事前条件を取り出す。
そして、攻撃活動状況情報Ｃの束縛済み変数情報に値が登録されていれば、事前条件未達情報削除処理部は、事前条件内の変数をその値で置換する。
次に、Ｓ１１０５において、推論実施部１０３が呼出され、推論実施部１０３が、事前条件式が成立しているかを確認する。
事前条件が成立していなければ、処理がＳ１１０８へ分岐し、次の攻撃活動状況情報の確認に移行する。
事前条件が成立していた場合は、推論実施部１０３は、事前条件中の未束縛の変数に対し、具体的な値を事前条件未達情報削除処理部に返す。
そこで、Ｓ１１０６において、事前条件未達情報削除処理部は、未束縛の変数が推論実施部１０３から得られた値で束縛されるように攻撃活動状況情報Ｃの束縛済み変数情報を更新する。
その後、事前条件未達情報削除処理部は、Ｓ１１０７において、戻り値変数に攻撃活動状況情報Ｃを登録し、Ｓ１１０８を経て、次の攻撃活動状況情報の確認に移行する。
【００７３】
攻撃活動状況情報の集合ＣＬ内の全ての攻撃活動状況情報に対する確認が終了したら、事前条件未達情報削除処理部は、Ｓ１１０９において戻り値変数に格納された攻撃活動状況情報の集合を呼び出し元へ返し、処理を終了する。
【００７４】
次に、図７のＳ５０４、Ｓ５０５の処理の詳細を図１４のフローチャートを参照して説明する。
図１４の処理は攻撃発生判定部１０６で実行される。
【００７５】
Ｓ１２０１において、攻撃発生判定部１０６は、攻撃活動状況情報検索部１０７で得られた攻撃活動状況情報の集合ＣＬを引数として呼び出される。
【００７６】
攻撃発生判定部１０６は、Ｓ１２０２で、攻撃が行われていると判定された攻撃活動状況情報を格納する戻り値変数Ｒｅｔを初期化した後、Ｓ１２０３から始まるループで攻撃活動状況情報の集合ＣＬ中の各攻撃活動状況情報について攻撃判定を行う。
【００７７】
まずＳ１２０４〜Ｓ１２０６にて、攻撃発生判定部１０６は、対象となっている攻撃活動状況情報Ｃの累積攻撃確度値に、攻撃活動状況情報Ｃの攻撃活動定義情報内で定義されている攻撃確度値を加算する。
そして、攻撃発生判定部１０６は、Ｓ１２０７で、加算結果であるｇと事前に定義された攻撃判定閾値とを比較する。
加算結果ｇが攻撃判定閾値を超えた場合に、処理がＳ１２０８に分岐し、攻撃発生判定部１０６は、戻り値変数Ｒｅｔへ攻撃活動状況情報Ｃを格納する。
攻撃活動状況情報の集合ＣＬ内の全ての攻撃活動状況情報について判定が終了すると、攻撃発生判定部１０６は、Ｓ１２１０にて戻り値変数Ｒｅｔを呼び出し元へ返し、処理を終了する。
図１４の処理により攻撃が行われていると判定された攻撃時活動状況情報は、図７のＳ５０６にてユーザに通知される。
【００７８】
次に、図７のＳ５０７以降の処理、すなわち次に観測されるイベントを予測する処理の詳細を図１５〜図１９を参照しながら説明する。
なお、Ｓ５０７以降の処理は、Ｓ５０３で得られた観測イベントに合致する攻撃活動状況情報の集合に含まれる各攻撃活動状況情報に対して個別に実施される。
【００７９】
まず、達成事象算出・登録部１０２により、達成事象が達成事象データベース１０９に登録される。
図１５は、達成事象算出・登録部１０２の動作例を示すフローチャートである。
【００８０】
達成事象算出・登録部１０２は、Ｓ１３０１において、達成事象の更新対象である攻撃活動状況情報Ｃを引数として呼び出される。
【００８１】
達成事象算出・登録部１０２は、Ｓ１３０２で、達成事象を呼び出し元に返すための変数Ｒｅｔを初期化する。
そして、達成事象算出・登録部１０２は、Ｓ１３０３において、攻撃活動状況情報Ｃの束縛済み変数情報の内容を取り出す。
【００８２】
次に、達成事象算出・登録部１０２は、Ｓ１３０４で、攻撃活動状況情報Ｃ中の攻撃活動定義情報で定義されている達成事象を取り出す。
更に、達成事象算出・登録部１０２は、Ｓ１３０５にて、取り出した達成事象で参照されている各変数に、各変数が束縛されている値を代入する。
そして、達成事象算出・登録部１０２は、Ｓ１３０６にて、代入結果を戻り値変数Ｒｅｔに代入する。
【００８３】
次に、Ｓ１３０７において、達成事象算出・登録部１０２は、派生達成事象算出処理を呼び出す。
そして、派生達成事象算出処理により得られた、推論ルールを介して得られる達成事象を戻り値変数Ｒｅｔに付け加え、Ｓ１３０８において呼び出し元へ戻り値変数Ｒｅｔを返し、処理を終了する。
【００８４】
図１６を参照しながら派生達成事象算出処理（図１５のＳ１３０７）を説明する。
図１６は、派生達成事象算出処理の詳細を示すフローチャートである。
なお、図１６の派生達成事象算出処理は、図２に図示していない、達成事象算出・登録部１０２の内部要素である派生達成事象算出処理部が行う。
【００８５】
派生達成事象算出処理部は、Ｓ１４０１において、達成事象集合Ｃｏｎｓを引数として呼び出される。
派生達成事象算出処理部は、まず、引数として与えられた達成事象が成立する以前から、既に成立している達成事象をＳ１４０２〜Ｓ１４０６で求め、引数として与えられた達成事象が成立した後に成立している事象をＳ１４０７〜Ｓ１４１２で求め、Ｓ１４０２〜Ｓ１４０６で求めた達成事象とＳ１４０７〜Ｓ１４１２で求めた達成事象との差分を求める。
これにより、派生達成事象算出処理部は、引数として与えられた達成事象集合により、新たに達成された達成事象を求める。
【００８６】
Ｓ１４０２では、派生達成事象算出処理部は、既に成立している達成事象の集合を格納する変数Ｇ０を初期化する。
また、派生達成事象算出処理部は、Ｓ１４０３から開始されるループで、推論ルールデータベース１１０中の各レコードに含まれるゴールが、成立しているかを確認する（Ｓ１４０４）。
ゴールが既に成立していたら、処理がＳ１４０５に分岐し、派生達成事象算出処理部は、成立しているゴールの変数が全て具体値で置換された述語の集合を、変数Ｇ０に格納する。
【００８７】
次に、派生達成事象算出処理部は、Ｓ１４０７で、引数として与えられた達成事象集合を達成事象データベース１０９へ登録する。
これにより、推論実施部１０３は、新たに達成された事象を、推論に反映することが可能となる。
次に、派生達成事象算出処理部は、Ｓ１４０８において、達成事象登録後に得られた達成事象を格納する変数Ｇ１に、達成事象登録後に得られた達成事象を格納する。
【００８８】
そして、派生達成事象算出処理部は、Ｓ１４０９からのループで再び推論ルールデータベース１１０中の各レコードに含まれるゴールが、成立しているかを確認する（Ｓ１４１０）。
派生達成事象算出処理部は、Ｓ１４１１において、成立しているゴールの変数が全て具体値で置換された述語の集合を、変数Ｇ１に格納する。
【００８９】
最後にＳ１４１３において、派生達成事象算出処理部は、変数Ｇ１と変数Ｇ０との差分をとり、Ｃｏｎｓ登録後に成立した達成事象の述語を求め、達成事象集合Ｃｏｎｓ登録後に成立した達成事象の述語を呼び出し元に返し、処理を終了する。
【００９０】
図１５に示す手順にて達成事象が取得された後、攻撃活動予測部１０５が呼び出され、次に観測される可能性のあるイベントの予測が行われる。
攻撃活動予測部１０５の動作を図１７、図１８及び図１９を参照しながら説明する。
図１７は、攻撃活動予測部１０５の処理を示すフローチャートである。
【００９１】
攻撃活動予測部１０５は、Ｓ１５０１において、予測対象となる攻撃活動状況情報Ｃ０と、達成事象算出・登録部１０２から返された達成事象集合Ｃｏｎｓを引数として呼び出される。
【００９２】
攻撃活動予測部１０５は、Ｓ１５０２で、予測された攻撃活動状況情報Ｒｅｔを初期化し、Ｓ１５０３で、攻撃活動定義情報データベース１１１内の攻撃活動定義情報を全て取り出す。
【００９３】
攻撃活動予測部１０５は、Ｓ１５０４から始まるループで各攻撃活動定義情報Ｄを取り出し、次に観測されると予測されるイベントを示す攻撃活動状況情報を生成していく。
【００９４】
まず、攻撃活動予測部１０５は、Ｓ１５０５で、攻撃活動定義情報Ｄの事前条件を取り出す。
次に、攻撃活動予測部１０５は、Ｓ１５０６で、引数として与えられた達成事象と同じ述語を使った項が、Ｓ１５０５で取り出した事前条件に存在するかを確認する。
もし該当する項が存在したならば、攻撃活動予測部１０５は、攻撃活動定義情報Ｄが達成事象に依存する攻撃活動定義情報であるとみなし、処理がＳ１５０７に分岐する。
攻撃活動予測部１０５は、Ｓ１５０７、Ｓ１５０８で、攻撃活動定義情報Ｄを含んだ攻撃活動状況情報Ｃを生成する。
また、攻撃活動予測部１０５は、Ｓ１５０９で、実行可能活動検索処理（後述）が呼び出す。
実行可能活動検索処理により、攻撃活動状況情報Ｃが依存している攻撃活動定義情報の中から、現在事前条件を満たしている攻撃活動定義情報が検索され、攻撃活動予測部１０５は、検索された攻撃活動定義情報を内包する攻撃活動状況情報の集合を得る。
攻撃活動予測部１０５は、Ｓ１５１０で、実行可能活動検索処理から得た攻撃活動状況情報の集合を戻り値変数Ｒｅｔに追加する。
また、攻撃活動予測部１０５は、Ｓ１５１１で、次の攻撃活動定義情報に対し同様な処理を行う。
【００９５】
全ての攻撃活動定義情報についてループが終了すると、Ｓ１５１２において、攻撃活動予測部１０５は、戻り値変数Ｒｅｔに登録された各攻撃活動状況情報の累積攻撃確度値に、引数Ｃ０に格納されている累積攻撃確度値を代入する。
そして、攻撃活動予測部１０５は、Ｓ１５１３にて、戻り値変数Ｒｅｔを呼び出し元へ返し、処理を終了する。
【００９６】
次に、図１８及び図１９を参照しながら実行可能活動検索処理（図１７のＳ１５０９）の詳細を説明する。
図１８及び図１９は実行可能活動検索処理の内容を示すフローチャートである。
なお、図１８及び図１９の実行可能活動検索処理は、図２に図示していない、攻撃活動予測部１０５の内部要素である実行可能活動検索処理部が行う。
【００９７】
実行可能活動検索処理はＳ１６０１において、攻撃活動定義情報を探索する起点となる攻撃活動状況情報Ｃを引数として開始される。
【００９８】
実行可能活動検索処理部は、Ｓ１６０２で戻り値変数を初期化した後、Ｓ１６０３で、攻撃活動状況情報Ｃの事前条件を取り出す。
次に、実行可能活動検索処理部は、攻撃活動状況情報Ｃの事前条件の各変数を攻撃活動状況情報Ｃの束縛済み変数情報に記載された情報で置換し、変数が置換された後の事前条件が成立しているかどうか推論実施部１０３を用いて確認する（Ｓ１６０４）。
もし既に事前条件が成立しているならば、処理がＳ１６０５に分岐し、実行可能活動検索処理部は、事前条件中で束縛されていない変数の具体値（推論実施部１０３が返す具体値）を、攻撃活動状況情報Ｃの束縛済み変数情報に記録する。
そして、実行可能活動検索処理部は、攻撃活動状況情報Ｃを戻り値変数Ｒｅｔに格納し、Ｓ１６１６で、戻り値変数Ｒｅｔが呼び出し元へ返され、実行可能活動検索処理部の処理が終了する。
【００９９】
Ｓ１６０４において事前条件が未成立だった場合（Ｓ１６０４でＮＯ）は、端子（Ｄ）により、処理がＳ１６０７へと分岐する。
Ｓ１６０７から始まるループでは、攻撃活動状況情報Ｃの事前条件（変数は束縛済み）に含まれる各項がそれぞれ達成事象データベース１０９内の達成事象により成立可能かどうかを推論実施部１０３でテストし、達成事象データベース１０９内の達成事象で成立しない項ｔに対して処理が行われる。
【０１００】
Ｓ１６０８では、実行可能活動検索処理部は、攻撃活動定義情報データベース１１１を検索し、項ｔを達成事象として含み得る攻撃活動定義情報Ｄ２の集合を取得する。
次に、実行可能活動検索処理部は、Ｓ１６０９から始まるループの中で、取得した各攻撃活動定義情報Ｄ２に対し、Ｓ１６１０、Ｓ１６１１で攻撃活動定義情報Ｄ２を内包する攻撃活動状況情報を作成する。
さらに、実行可能活動検索処理部は、Ｓ１６１２において、攻撃活動状況情報Ｃ２の達成事象のうち、ｔで示される項の既に束縛済みの変数を、攻撃活動状況情報Ｃ２の束縛済み変数情報へ登録する。
こうして得られた攻撃活動状況情報Ｃ２を引数として、実行可能活動検索処理部は、Ｓ１６１３にて実行可能活動検索処理部自身を再帰的に呼出す。
そして、実行可能活動検索処理部は、得られた結果を戻り値変数Ｒｅｔに追加し、Ｓ１６１４にて、ループの先頭へ戻り、次の攻撃活動定義情報について同様な処理を行う。
最終的に全ての項ｔに対して処理を終了した時点で、Ｓ１６１６が実行され、戻り値変数Ｒｅｔが呼び出し元に返され、実行可能活動検索処理部の処理が終了する。
【０１０１】
以上の処理によって抽出された攻撃活動状況情報は攻撃活動候補記憶部１０４に登録される。
もし、抽出された攻撃活動状況情報の中に、監視設定３１７を含む攻撃活動状況情報が存在する場合には、イベント生成設定変更部１２２により、監視設定３１７の起動確度３２３よりも攻撃活動状況情報の累積攻撃確度値が上回っているかが確認される。
攻撃活動状況情報の累積攻撃確度値が起動確度３２３を上回っている場合は、イベント生成設定変更部１２２は、監視対象装置３１９の内容に従って監視対象装置を選択し、監視設定のコマンド３１８及びコマンドパラメータ３２０の内容を、選択した監視対象装置に送信する。
累積攻撃確度値が、起動確度３２３以下の場合には、当該攻撃活動状況情報は、攻撃活動候補記憶部１０４への登録も行われない。
【０１０２】
以上のように、本実施の形態に係る攻撃検知装置は、事前条件、達成事象を述語論理で定義した攻撃活動定義情報を用い、イベント観測時に、観測されたイベントに対応する攻撃活動定義情報を攻撃活動定義情報データベースから検索する攻撃活動状況情報検索部と、検索結果から得られた攻撃活動定義情報内の事前条件、達成事象から、推論実施部を使って次に観測されるイベントの候補を予測する攻撃活動予測部とを有する。
そして、攻撃活動状況情報検索部及び攻撃活動予測部により、事前に全ての攻撃シナリオを定義することなく、複数のステップを経て実施される攻撃を検知できるという効果がある。
【０１０３】
また、新たな監視対象装置を追加したり、新たな攻撃手法が明らかになったりした場合でも、攻撃活動定義情報編集部が、対応する攻撃活動定義情報を追加するだけで監視対象装置の追加及び新たな攻撃手法に対応可能である、という効果がある。
【０１０４】
また、本実施の形態では、攻撃活動定義情報に監視設定を定義し、攻撃活動が予測された場合にのみイベント生成設定変更部を通じて監視対象装置を必要な設定に変更して監視を行う。
このため、常時実施するには高コストな監視を、必要な時に限って実施することができる、という効果がある。
【０１０５】
また、本実施の形態では、推論を実施する際に、推論ルールデータベースも参照するため、達成事象算出・登録部は、達成事象から推論の結果得られる達成事象も得ることができる。
このため、各攻撃活動定義情報には最低限の達成事象のみを記述するだけでよい、という効果がある。
【０１０６】
また、本実施の形態では、構成情報データベースに、監視対象の情報システムの構成を表す述語論理を格納し、推論の際に推論実施部が構成情報データベースを参照する。
このため、イベント上には現れない情報システムの構成に関する情報も考慮した事前条件を記述できる、という効果がある。
【０１０７】
また、本実施の形態では、攻撃活動定義情報に攻撃確度値が定義され、また攻撃活動状況情報内で累積の攻撃確度値が管理され、累積の攻撃確度値が攻撃判定閾値を超えた場合に攻撃が発生した旨が通知される。
このため、攻撃者の挙動に近い一連のイベントが発生した場合のみユーザに攻撃の発生を通知することが可能となり、誤検知を低減できるという効果がある。
【０１０８】
また、本実施の形態では、構成情報・推論ルール編集部により、構成情報データベース及び推論ルールデータベースをユーザが編集できるという効果がある。
【０１０９】
また、表示部により、攻撃の発生をユーザに通知できるという効果がある。
【０１１０】
なお、本実施の形態では攻撃検知装置内に構成されている各部、データベースを、ネットワーク等で接続した別装置上に実装することも、もちろん可能である。
【０１１１】
以上、本実施の形態では、
事前条件、達成事象、イベント内容を含んだ攻撃活動定義情報と、
攻撃活動定義情報を格納する攻撃活動定義情報データベースと、
発生したイベントに対応する攻撃活動定義情報を検索し、検索した攻撃活動定義情報の達成事象に依存する攻撃活動定義情報を検索し、検索した攻撃活動定義情報から、次に発生するイベントを予測する攻撃活動予測部とを説明した。
【０１１２】
また、本実施の形態では、攻撃活動定義情報には、攻撃活動が予測された場合にのみ攻撃設定を変更できるよう、監視設定という項目が含まれており、イベント生成設定変更部が、攻撃活動定義情報に含まれる監視設定に従い、監視対象装置に設定変更を要求することを説明した。
【０１１３】
また、本実施の形態では、攻撃活動定義情報には、累積の攻撃確度値の増分を定義する攻撃確度値が含まれ、攻撃発生判定部が、予測に沿ったイベントが発生するごとに、累積の攻撃確度値を増加させていき、累積の攻撃確度値が、ある閾値を超えた時点でユーザに攻撃の発生を通知することを説明した。
【０１１４】
また、本実施の形態では、監視対象の情報システムの構成を表す情報を格納した構成情報データベースと、常に成立する推論ルールを定義した推論ルールデータベースを説明した。
【０１１５】
また、本実施の形態では、事前条件、達成事象、推論ルール、構成情報、監視設定に述語論理を使用することを説明した。
【０１１６】
実施の形態２．
以上の実施の形態１では、イベントが発生しても、そのイベントの事前条件が成立しない限り、発生したイベントは無視される（図１３のＳ１１０５でＮＯの場合）。
つまり、実施の形態１では、図３に示すイベント２２０が発生した際に、攻撃活動定義情報２０５に記述されている事前条件が成立していないと、イベント２２０の次に発生するイベントを予測する処理は行われない。
本実施の形態では、発生したイベントの攻撃活動定義情報２０５に記述されている事前条件が不成立であっても、次に発生するイベントを予測する処理を実施する例を説明する。
【０１１７】
本実施の形態では、図２１に示すように、攻撃活動定義情報の事前条件に、条件成立を必須とするかどうかを定義する真偽値情報（成立必須フラグ２１１６とフラグ値２１１７）を付加する。
成立必須フラグ２１１６のフラグ値２１１７がＴｒｕｅであれば、事前条件が不成立の場合は、次に発生するイベントを予測する処理は行われない。
成立必須フラグ２１１６のフラグ値２１１７がＦａｌｓｅであれば、事前条件が不成立の場合でも、次に発生するイベントを予測する処理は行われる。
つまり、Ｆａｌｓｅのフラグ値２１１７は、事前条件（イベント前段階）が不成立であっても観測予測イベントを抽出する処理を実施する旨を示す識別子であり、処理実施識別子の例に相当する。
図２１の攻撃活動定義情報の要素のうち、成立必須フラグ２１１６とフラグ値２１１７以外の要素は、図４に示したものと同様であり、説明を省略する。
また、本実施の形態に係るシステム構成は図１に示すものと同様であり、また、本実施の形態に係る攻撃検知装置１０１の構成例は図２に示すものと同様である。
以下では、主に実施の形態１との違いを説明する。
以下で説明していない事項は、実施の形態１と同様である。
【０１１８】
図２２は、本実施の形態に係る事前条件未達情報削除処理部（攻撃活動状況情報検索部１０７の内部要素）の処理を示すフローチャートである。
図２２のフローは、実施の形態１で説明した図１３のフローの代わりに行われる。
事前条件未達情報削除処理部は、成立必須フラグ２１１６のフラグ値２１１７がＦａｌｓｅの場合は、事前条件が不成立であっても、観測イベント通知情報で通知されたイベントを図１３で説明した変数Ｒｅｔに格納する。
具体的な処理は、図２２を参照しながら以下に説明する。
【０１１９】
Ｓ２２０１からＳ２２０５までの処理は、図１３のＳ１１０１からＳ１１０５までの処理と同じである。
Ｓ２２０５でＮＯに分岐した場合、すなわち、観測イベント通知情報で通知されたイベントの攻撃活動定義２１０１に記述されている事前条件２１０３が不成立の場合に、事前条件未達情報削除処理部は、成立必須フラグ２１１６のフラグ値２１１７を参照する（Ｓ２２１０）。
フラグ値２１１７がＴｒｕｅであった場合には、事前条件未達情報削除処理部の処理は、Ｓ２２０８へと分岐し、実施の形態１と同様に、観測イベント通知情報で通知されたイベントは無視され、観測予測イベントを抽出する処理が行われない。
フラグ値２１１７がＦａｌｓｅであった場合には、処理はＳ２２１１へと分岐する。
Ｓ２２１１では、事前条件未達情報削除処理部は、Ｓ２２０４において変数が束縛値に置換された事前条件式の各項のうち、未束縛の変数を含まない項を達成事象データベースに登録し、Ｓ２２０７へと進む。
その後、Ｓ５０４以降の処理が行われ（図２２は、図７のＳ５０３の詳細を示す図１０のＳ８１４の詳細を示すため）、実施の形態１で示した手順にて、観測予測イベントを抽出する処理が行われる。
【０１２０】
このように、事前条件未達情報削除処理部は、事前条件は成立していないが、イベントが発生した背景に事前条件を満たすような活動が行われたと推定して、処理を行う。
【０１２１】
以上のように、本実施の形態によれば、事前条件が未達成の状態で発生したイベントに対して、その事前条件のうちの未束縛の変数を含まない項を達成事象データベースに登録することができる。
このため、その後の攻撃活動予測において、従来は予測されなかったイベントの発生も予測することができるという効果がある。
【０１２２】
また、本実施の形態では、成立必須フラグのフラグ値がＦａｌｓｅの場合のみ上記処理を行うので、事前条件が満たされていない全てのイベントの事前条件を達成事象データベースに登録する必要がない効果がある。
【０１２３】
実施の形態３．
以上の実施の形態１及び２では、監視対象装置から観測イベント通知情報で通知されたイベントに基づいて将来のイベントを予測していた。
本実施の形態では、監視対象装置からの観測イベント通知情報で通知されなかったイベントを含む、監視対象装置での観測された全てのイベントを用いて、事前条件の成立有無を判断する例を説明する。
【０１２４】
図２３は、本実施の形態に係るシステム構成例を示す。
本実施の形態では、攻撃検知装置１０１に接続する監視対象装置２３０３と監視対象装置２３０８の構成が、実施の形態１と異なる。
攻撃検知装置１０１の内部構成例は、図２に示す通りである。
以下では、主に実施の形態１及び実施の形態２との違いを説明する。
以下で説明していない事項は、実施の形態１又は実施の形態２と同様である。
【０１２５】
監視対象装置２３０３と監視対象装置２３０８において、イベント送信部２３０４、２３０９は、図１に示すイベント送信部１１７、１２０と同じである。
また、イベント生成部２３０５、２３１０も、図１に示すイベント生成部１１８、１２１と同じである。
但し、イベント生成部１１８、１２１は、観測された全てのイベントを観測イベント通知情報で攻撃検知装置１０１に通知していたが、イベント生成部２３０５、２３１０は、観測されたイベントのうち特定のイベントのみを観測イベント通知情報で攻撃検知装置１０１に通知する。
観測イベント通知情報で通知するイベントは、攻撃検知装置１０１のイベント生成設定変更部１２２が設定する。
例えば、監視に要するコストが一定レベル以下のイベントのみを観測イベント通知情報で通知するように設定することが考えられる。
【０１２６】
前述したように、実施の形態１では、例えば、図３に示すイベント２２０が発生した際に、攻撃活動定義情報２０５に記述されている事前条件が成立していないと、イベント２２０の次に発生するイベントを予測する処理は行われず、また、攻撃確度値の累算も行われない。
攻撃検知装置１０１は、イベント２２０よりも以前に観測イベント通知情報で通知されているイベントに基づいて、攻撃活動定義情報２０５に記述されている事前条件が成立しているか否かの判定を行う。
すなわち、攻撃検知装置１０１は、通知されていないイベント（例えば高コストのイベント）によってイベント２２０の事前条件が成立している場合であっても、イベント２２０の事前条件は成立していないと判定し、また、攻撃確度値の累算も行わない。
しかしながら、通知されていないイベント（例えば高コストのイベント）によってイベント２２０の事前条件が成立している場合は、実際に攻撃活動が進行しているので、イベント２２０が含まれる攻撃活動に高い累積攻撃確度値が与えられるべきである。
このように、実際は攻撃活動が進行していても、観測イベント通知情報でイベントが通知されていないと、攻撃活動の検知が行われない場合や、攻撃活動の検知が遅れてしまう場合がある。
【０１２７】
本実施の形態では、入力蓄積部２３０６、２３１１が、観測イベント通知情報で通知されなかったイベントを含む監視対象装置２３０３、２３０８でのイベントを導出可能なイベント導出情報を蓄積している。
そして、過去入力検索部２３０７、２３１２が、入力蓄積部２３０６、２３１１に蓄積されているイベント導出情報を検索する。
入力蓄積部２３０６、２３１１には、イベント導出情報として、イベントの元になる監視対象装置２３０３、２３０８への入力情報が蓄積される。
例えば、ＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）のようにパケットを監視して、攻撃を見つけるような監視対象装置の場合は、入力蓄積部２３０６、２３１１には、パケットが蓄積される。
同様に、サーバ等で発生するログを監視して、攻撃を見つけるような監視対象装置の場合は、入力蓄積部２３０６、２３１１には、ログが蓄積される。
本実施の形態では、蓄積されたパケットや、ログを（コストの関係でリアルタイムでは行えない方法で）再調査することにより、埋もれていたイベントを見つけられるようにしている。
【０１２８】
本実施の形態に係る攻撃検知装置１０１では、攻撃活動状況情報検索部１０７の内部要素である事前条件未達情報削除処理部が、過去入力検索部２３０７、２３１２を用いて、入力蓄積部２３０６、２３１１のイベント導出情報を解析する。
つまり、事前条件未達情報削除処理部は、入力蓄積部２３０６、２３１１のイベント導出情報を解析して、観測イベント通知情報で通知されていないイベントを含むいずれかのイベントによって図３のイベント２２０の事前条件が成立しているか否かを判定する。
そして、図３のイベント２２０の事前条件が成立している場合に、事前条件未達情報削除処理部は、更に、入力蓄積部２３０６、２３１１のイベント導出情報を時間的に遡って、依存関係にあるイベントを検出する。
そして、事前条件未達情報削除処理部は、検出したイベント列の先頭から順次イベント２２０まで攻撃確度値を累算する。
例えば、図３０に示すように、イベント２２０の攻撃活動定義情報２０５の事前条件がイベント２３１の攻撃活動定義情報２４１の達成事象に記述さているとする。
また、イベント２３１の攻撃活動定義情報２４１の事前条件がイベント２３２の攻撃活動定義情報２４２の達成事象に記述さているとする。
同様に、イベント２３２の攻撃活動定義情報２４２の事前条件がイベント２３３の攻撃活動定義情報２４３の達成事象に記述さているとする。
事前条件未達情報削除処理部は、イベント２２０から遡って、順に、イベント２３１、イベント２３２、イベント２３３というイベント列を検出する。
更に、事前条件未達情報削除処理部は、イベント２３３、イベント２３２、イベント２３１、イベント２２０の攻撃確度値を累算する。
そして、攻撃発生判定部１０６が、攻撃確度値の累算値が閾値を超えている場合に、表示部１１５を通じて、ユーザに攻撃の発生を通知する（図７のＳ５０６）。
【０１２９】
図２４を用いて、本実施の形態に係る事前条件未達情報削除処理部の動作を説明する。
Ｓ２４０１からＳ２４０５までは、図１３のＳ１１０１からＳ１１０５までと同じである。
Ｓ２４０５において、事前条件式が成立していなかった場合は、事前条件未達情報削除処理部は、Ｓ２４１０にて攻撃活動状況情報Ｃに対する過去イベント検索処理を呼び出し、過去イベント検索処理の結果を変数Ｒに格納する。
【０１３０】
図２６と図２７を用いて過去イベント検索処理について説明する。
Ｓ２６０１に示す通り、過去イベント検索処理は検索対象とする攻撃活動状況情報Ｃを引数として呼び出される。
次に、Ｓ２６０２で、攻撃活動状況情報Ｃの事前条件を構成している各項の中で、未成立の項の集合が変数ＴＳに代入される。
Ｓ２６０３で、添え字変数ｉ及び戻り値を格納する変数ＣＳが初期化される。
Ｓ２６０４で、変数ＡＤＢに攻撃活動定義情報データベースに記憶された攻撃活動定義情報一覧が代入される。
【０１３１】
ループＳ２６０５〜Ｓ２６１６では、変数ＴＳ中の項が順番に取り出されて変数ｔに代入されて、処理が行われる。
Ｓ２６０６では、変数ｅｖｓが空の配列で、また変数ｅｆｆｅｃｔｓが空の集合で初期化される。
【０１３２】
ループＳ２６０７〜Ｓ２６１３では、変数ＡＤＢ中の攻撃活動定義情報が順番に取り出され、変数ｅに代入され、処理が行われる。
Ｓ２６０８では、現在の監視対象装置の設定で変数ｅの値が検知可能かどうかが確認される。
既に変数ｅの値が検知可能な状態であった場合、処理がＹＥＳに分岐し、Ｓ２６１３を経てループの先頭Ｓ２６０７に処理が戻り、変数ｅの次の値に対して処理が継続される。
Ｓ２６０８で処理がＮＯに分岐すると、次にＳ２６０９において、変数ｅの達成事象が変数ｔで表される項にマッチ可能かが確認される。
変数ｅの達成事象が変数ｔで表される項にマッチしない場合は、Ｓ２６０９から処理がＮＯに分岐し、Ｓ２６１３を経てループの先頭Ｓ２６０７に処理が戻り、変数ｅの次の値に対して処理が継続される。
Ｓ２６０９で処理がＹＥＳに分岐すると、次にＳ２６１０で変数ｅの達成事象で使用されている変数が、変数ｔ中の値で束縛される。
次に、Ｓ２６１１で、変数ｅにマッチするイベントが過去に発生していないかの検索が行われる。
この検索は以下にて実施される。
変数ｅ中のイベントの中で使用されている変数のうち、Ｓ２６１０で束縛された変数を束縛値で置換し、置換後のイベントを監視対象装置上の過去入力検索部に入力して過去入力検索部を呼び出す。
そして、過去入力検索部が入力蓄積部に蓄積されている情報を検索する。
検索の結果該当するイベントが検出された場合に、検出されたイベントの内容を反映した攻撃活動状況情報が作成され、作成された攻撃活動状況情報が変数Ｃｐに代入される。
変数Ｃｐに代入される攻撃活動状況情報の攻撃活動定義情報は、変数ｅで表される攻撃活動定義情報と同じである。
変数ｅで表される攻撃活動定義情報中のイベントの記述に使用されている変数は、検索されたイベントの内容で束縛される。
検索の結果、変数Ｃｐが見つかった場合、つまり、変数ｅにマッチするイベントが見つかった場合に、Ｓ２６１２で処理がＹＥＳに分岐し、端子（Ｉ）を経て図２７のＳ２７０１に処理が移る。
Ｓ２６１２で処理がＮＯに分岐した場合は、Ｓ２６１３を経てループの先頭Ｓ２６０７に処理が戻り、変数ｅの次の値に対して処理が行われる。
【０１３３】
図２７のＳ２７０１では、変数Ｃｐの事前条件が満たされているかが確認される。
変数Ｃｐの事前条件が満たされていた場合は、処理がＹＥＳに分岐し、Ｓ２７０２にて、変数Ｃｐを唯一の要素として持つ配列が作成され、作成された配列が変数ｅｖｓに代入される。
その後、Ｓ２７０３にて、変数ｅｆｆｅｃｔｓに変数Ｃｐの達成事象が追加され、端子（Ｋ）へと処理が遷移する。
【０１３４】
Ｓ２７０１で処理がＮＯに分岐すると、Ｓ２７０４で、変数Ｃｐを引数として過去イベント検索処理が再帰的に呼び出される。
過去イベント検索処理の結果は変数Ｅｓに格納される。
変数Ｅｓは、攻撃活動状況情報のツリーの配列である。
Ｓ２７０５にて変数ＥｓがＮＵＬＬであった場合、処理がＹＥＳに分岐し、Ｓ２７０６にて変数Ｃｐの成立必須フラグがＦａｌｓｅかどうかが確認される。
変数Ｃｐの成立必須フラグがＦａｌｓｅであった場合、処理がＹＥＳに分岐し、端子（Ｊ）を経て処理がＳ２６１４に進む。
Ｓ２７０６で処理がＮＯに分岐した場合は、Ｓ２７０７において変数ｅｆｆｅｃｔｓに変数Ｃｐの事前条件の各項のうち、未束縛の変数を含まない項が追加される。
その後、Ｓ２７０８にて変数ｅｆｆｅｃｔｓに変数Ｃｐの達成事象が追加され、端子（Ｊ）へと処理が遷移する。
【０１３５】
Ｓ２７０５で処理がＮＯに分岐した場合は、Ｓ２７０９で、変数Ｃｐの累積攻撃確度値が、変数Ｅｓ中の全ての配列中の各ツリーの根ノードの攻撃活動状況情報の累積攻撃確度値と、各ツリーの根ノードの攻撃確度値を足し合わせた値に更新される。
その後、Ｓ２７１０で、変数Ｃｐを根ノードとし、変数Ｅｓの各要素（要素の一つ一つが木構造のデータとなっている）を子ノードとするツリーが作成され、作成されたツリーが変数ｅｖｓに代入される。
その後、Ｓ２７１１で、変数ｅｆｆｅｃｔｓに、変数Ｃｐの達成事象が追加され、端子（Ｊ）へと処理が遷移する。
【０１３６】
端子（Ｊ）から、あるいはループＳ２６０７〜Ｓ２６１３の終了により、図２６のＳ２６１４が実行され、変数ｅｖｓが空かどうか検査される。
変数ｅｖｓが空だった場合は、処理がＹＥＳに分岐し、Ｓ２６１８で、呼び出し元にｎｕｌｌが返され、処理が終了する。
Ｓ２６１４で処理がＮＯに分岐した場合は、変数ＣＳのｉ番目の要素として変数ｅｖｓの値が格納され、ｉに１が加算される。
その後、Ｓ２６１６を経て処理がループＳ２６０５に戻り、変数ｔの次の値について処理が行われる。
【０１３７】
全ての変数ｔについて処理が完了したら、Ｓ２６１７で、変数ＣＳと変数ｅｆｆｅｃｔｓが呼び出し元に返され、処理が終了する。
【０１３８】
再び図２４に戻り、Ｓ２４１０以降の処理について説明する。
Ｓ２４１０で返された結果がｎｕｌｌであった場合は、Ｓ２４１１から処理がＹＥＳに分岐し、処理がＳ２４１２に進む。
以降の動作は実施の形態２と同様である。
【０１３９】
Ｓ２４１１から処理がＮＯに分岐した場合は、端子（Ｈ）を経て図２５のＳ２５０１に処理が進む。
Ｓ２５０１では、変数Ｒに格納されている攻撃活動状況情報と達成事象集合がそれぞれ変数Ｅｓ及び変数ｅｆｆｅｃｔｓに代入される。
次に、Ｓ２５０２において、変数Ｃの累積攻撃確度値が、変数Ｅｓ中の全ての配列中の各ツリーの根ノードの攻撃活動状況情報の累積攻撃確度値と各ツリーの根ノードの攻撃確度値を足し合わせた値に更新される。
その後、Ｓ２５０３にて、変数Ｅｓ内の全攻撃活動状況情報が変数Ｒｅｔに追加され、さらに、Ｓ２５０４にて、変数ｅｆｆｅｃｔｓに格納された達成事象が達成事象データベースへ登録される。
その後端子（Ｇ）を経て処理がＳ２４０７に戻る。
【０１４０】
以上のように、本実施の形態では、事前条件が未達成の状態で発生したイベントに対し、当該イベントの事前条件を満たすようなイベントが発生していないか、監視対象装置に蓄積された情報を検索して確認する。
このため、実施の形態１及び実施の形態２では、本来はより高い累積攻撃確度値が与えられるべき一連の攻撃活動が、実際よりも低い累積攻撃確度値になってしまい、攻撃活動の検知から漏れるあるいは検知が遅れるという課題を解決できるという効果がある。
【０１４１】
実施の形態４．
実施の形態１〜３では、攻撃活動定義情報中の攻撃確度値は、攻撃活動定義情報の作成者が定義する必要があった。
次に、本実施の形態では、平常時のイベントの発生頻度から攻撃確度値を自動決定する例を説明する。
【０１４２】
本実施の形態のシステム構成例を図２８に示す。
図２８において、攻撃検知装置２８０１は、実施の形態１で示した攻撃検知装置１０１に攻撃確度値決定部２８０２及びモード切り換え部２８０３を追加した構成となっている。
つまり、本実施の形態に係る攻撃検知装置２８０１は、図２に示す構成に、攻撃確度値決定部２８０２及びモード切り換え部２８０３を追加した構成となっている。
攻撃確度値決定部２８０２は、攻撃活動定義情報に記述される攻撃確度値を、観測イベント通知情報の受信頻度に基づき決定する。
モード切り換え部２８０３は、攻撃検知装置２８０１の動作モードを切り換える。
監視対象装置１１６、１１９は、実施の形態１で示したものと同じである。
以下では、主に実施の形態１との違いを説明する。
以下で説明していない事項は、実施の形態１と同様である。
【０１４３】
本実施の形態に係る攻撃活動定義情報の攻撃確度値を決定する動作を説明する。
はじめに管理者は攻撃検知装置２８０１のモード切り換え部２８０３を通じて攻撃検知装置２８０１の動作モードを通常運用モードから攻撃確度値決定モードに切り換える。
この攻撃確度値決定モードでは、監視対象装置１１６、１１９からの観測イベント通知情報は攻撃確度値決定部２８０２に送られる。
【０１４４】
観測イベント通知情報を受け取った攻撃確度値決定部２８０２は、実施の形態１に記載の検索サブルーチン（図１０のＳ８０４、Ｓ８１３）を呼び出し、該当する攻撃活動定義情報の集合を取得する。
また、攻撃確度値決定部２８０２は、攻撃活動定義情報ごとにカウンタを管理しており（初期値は０）、攻撃確度値決定モード中に観測イベント通知情報を受信するごとに、該当する攻撃活動定義情報に対応するカウンタの値を１増加させる。
【０１４５】
一定時間経過後、管理者が再びモード切り換え部２８０３を操作して攻撃検知装置２８０１の動作モードを攻撃確度値決定モードから通常運用モードに切り換える。
攻撃確度値決定部２８０２は、通常運用モードへの切り換えまでに計数された各攻撃活動定義情報のカウンタ値を基に、各攻撃活動定義情報の攻撃確度値を決定する。
攻撃確度値は、例えば次のような算出式により決定することができる。
攻撃確度値＝１／（カウンタ値＋１）
【０１４６】
このように、本実施の形態では、攻撃検知装置２８０１に、攻撃確度値決定部２８０２及びモード切り換え部２８０３を設けている。
本実施の形態によれば、攻撃確度値の決定を自動化することができる、という効果がある。
【０１４７】
なお、攻撃確度値の算出式は、上記の式に限定されるものではない。
また、観測イベント通知情報の受信時に増加させるカウンタ値も１に限定されるものではない。
【０１４８】
実施の形態５．
実施の形態１では、構成情報は、構成情報・推論ルール編集部１１３を通じて、管理者が入力する必要があった。
次に、本実施の形態では、ネットワーク上に接続されているアカウント管理サーバ装置や構成管理データベースから構成情報を自動で入手できる構成を説明する。
【０１４９】
図２９は、本実施の形態におけるシステム構成例を示す図である。
本実施の形態における攻撃検知装置２９０１は、実施の形態１で示した攻撃検知装置１０１に構成情報収集部２９０２を追加した構成となっている。
つまり、本実施の形態に係る攻撃検知装置２９０１は、図２に示す構成に、構成情報収集部２９０２を追加した構成となっている。
構成情報収集部２９０２は、情報システムに含まれる構成管理データベース２９０６及びアカウント管理サーバ装置２９０７から構成情報を収集する。
監視対象装置１１６、１１９は、実施の形態１で示したものと同じである。
構成管理データベース２９０６は、ネットワーク１２３上の機器の製品名やバージョン、ＩＰアドレス、ホスト名等を管理するデータベースである。
また、アカウント管理サーバ装置２９０７は、ネットワーク１２３を利用しているユーザのアカウント情報を管理するサーバである。
【０１５０】
本実施の形態において、攻撃検知装置２９０１では、初期化時あるいは定期的に、構成情報収集部２９０２が、構成管理データベース２９０６にアクセスし、ネットワーク１２３上で稼働している機器の種別やＩＰアドレス等を収集し、収集した情報を述語論理による表現に変換する。
そして、構成情報収集部２９０２は、述語論理表現に変換後の収集情報（構成情報）を構成情報データベース１１２に格納する。
同様に、構成情報収集部２９０２は、初期化時あるいは定期的にアカウント管理サーバ装置２９０７にもアクセスし、ユーザ名やグループの情報を収集し、収集した情報を述語論理による表現に変換する。
そして、構成情報収集部２９０２は、述語論理表現に変換後の収集情報（構成情報）を構成情報データベース１１２に格納する。
【０１５１】
このように、本実施の形態によれば、構成情報収集部２９０２が構成管理データベース２９０６やアカウント管理サーバ装置２９０７から構成情報を自動的に収集するため、構成情報データベース１１２を手動で編集する必要が無くなるという効果がある。
【０１５２】
最後に、実施の形態１〜５に示した攻撃検知装置１０１のハードウェア構成例を図２０を参照して説明する。
攻撃検知装置１０１はコンピュータであり、攻撃検知装置１０１の各要素をプログラムで実現することができる。
攻撃検知装置１０１のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１５３】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、イベント受信部１０８の物理層に対応する。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１５４】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図２等に示す「〜部」（攻撃活動候補記憶部１０４を除く、以下も同様）として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図２等に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１〜５の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の予測」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置９０３にファイルとして記憶されてもよい。
【０１５５】
なお、図２０の構成は、あくまでも攻撃検知装置１０１のハードウェア構成の一例を示すものであり、攻撃検知装置１０１のハードウェア構成は図２０に記載の構成に限らず、他の構成であってもよい。
また、実施の形態１〜５に示した監視対象装置も、図２０のハードウェア構成をしていてもよいし、他のハードウェア構成であってもよい。
【０１５６】
また、実施の形態１〜５に示す手順により、本発明に係る情報処理方法を実現可能である。
【符号の説明】
【０１５７】
１０１  攻撃検知装置、１０２  達成事象算出・登録部、１０３  推論実施部、１０４  攻撃活動候補記憶部、１０５  攻撃活動予測部、１０６  攻撃発生判定部、１０７  攻撃活動状況情報検索部、１０８  イベント受信部、１０９  達成事象データベース、１１０  推論ルールデータベース、１１１  攻撃活動定義情報データベース、１１２  構成情報データベース、１１３  構成情報・推論ルール編集部、１１４  攻撃活動定義情報編集部、１１５  表示部、１１６  監視対象装置、１１７  イベント送信部、１１８  イベント生成部、１１９  監視対象装置、１２０  イベント送信部、１２１  イベント生成部、１２２  イベント生成設定変更部、１２３  ネットワーク、２３０３  監視対象装置、２３０４  イベント送信部、２３０５  イベント生成部、２３０６  入力蓄積部、２３０７  過去入力検索部、２３０８  監視対象装置、２３０９  イベント送信部、２３１０  イベント生成部、２３１１  入力蓄積部、２３１２  過去入力検索部、２８０１  攻撃検知装置、２８０２  攻撃確度値決定部、２８０３  モード切り換え部、２９０１  攻撃検知装置、２９０２  構成情報収集部、２９０６  構成管理データベース、２９０７  アカウント管理サーバ装置。
【図１】
0006053948.tif 000002
【図２】
0006053948.tif 000003
【図３】
0006053948.tif 000004
【図４】
0006053948.tif 000005
【図５】
0006053948.tif 000006
【図６】
0006053948.tif 000007
【図７】
0006053948.tif 000008
【図８】
0006053948.tif 000009
【図９】
0006053948.tif 000010
【図１０】
0006053948.tif 000011
【図１１】
0006053948.tif 000012
【図１２】
0006053948.tif 000013
【図１３】
0006053948.tif 000014
【図１４】
0006053948.tif 000015
【図１５】
0006053948.tif 000016
【図１６】
0006053948.tif 000017
【図１７】
0006053948.tif 000018
【図１８】
0006053948.tif 000019
【図１９】
0006053948.tif 000020
【図２０】
0006053948.tif 000021
【図２１】
0006053948.tif 000022
【図２２】
0006053948.tif 000023
【図２３】
0006053948.tif 000024
【図２４】
0006053948.tif 000025
【図２５】
0006053948.tif 000026
【図２６】
0006053948.tif 000027
【図２７】
0006053948.tif 000028
【図２８】
0006053948.tif 000029
【図２９】
0006053948.tif 000030
【図３０】
0006053948.tif 000031