(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】情報検索装置、情報検索方法、及びプログラム
(51)【国際特許分類】
G06F 16/9032 20190101AFI20240702BHJP
G06F 21/55 20130101ALI20240702BHJP
【FI】
G06F16/9032
G06F21/55 320
(21)【出願番号】P 2022531154
(86)(22)【出願日】2020-06-16
(86)【国際出願番号】 JP2020023650
(87)【国際公開番号】W WO2021255841
(87)【国際公開日】2021-12-23
【審査請求日】2022-12-16
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】細見 格
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】国際公開第2015/059791(WO,A1)
【文献】特開2002-297387(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成する、論理的推論部と、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成部と、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索部と、
を備えていることを特徴とする情報検索装置。
【請求項2】
請求項1に記載の情報検索装置であって、
前記観測された事象を示すデータの集合が、前記事象の名称と、前記事象が発生した又は観測された日時及び場所とを含み、
前記事象間の関係を示すルールが、前記事象で表現された前提と前記前提に対応する帰結との組の集合で構成され、
前記論理的推論部が、前記論理的推論として、仮説推論を実行し、前記一連の事象についてのデータとして、前記一連の事象についての仮説を生成し、
前記クエリ生成部が、前記一連の事象についてのデータである前記一連の事象に関係する仮説と、前記事象間の関係を示すルールと、前記事象それぞれの名称と、前記日時及び前記場所とに基づいて、前記条件を決定する、
ことを特徴とする情報検索装置。
【請求項3】
請求項2に記載の情報検索装置であって、
前記クエリ生成部が、
前記仮説中の前記観測された事象を表している部分によって最下層を設定し、前記ルールに含まれる前記帰結を用いて、前記最下層より上位にある事象の層を設定して、事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索装置。
【請求項4】
請求項2に記載の情報検索装置であって、
前記クエリ生成部が、
予め構築されている階層化知識に基づいて、生成された前記仮説から事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索装置。
【請求項5】
請求項3または4に記載の情報検索装置であって、
前記クエリ生成部が、構築した前記階層構造において、前記条件の決定に用いる層を決定し、決定した層及びそれよりも上位の層のみを、前記複数のグループに分類する、
ことを特徴とする情報検索装置。
【請求項6】
コンピュータが実行する方法であって、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成し、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成し、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、
ことを特徴とする情報検索方法。
【請求項7】
コンピュータに、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成させ、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成させ、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ集合から必要な情報を検索するための、情報検索装置、及び情報検索方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
検索システムは、通常、ユーザが入力したクエリ(検索キーワードセット)のみを用いて検索を行うため、検索精度の向上に限界がある。これに対して、特許文献1は、ユーザが頭の中で考えている概念に近づいた検索結果を出力する、検索システムを提案している。
【0003】
特許文献1に開示された検索システムは、語と語との間の様々な関係を定義した概念ネットワーク、言い換えると、実世界のエンティティ間の関係を表す知識データを用いて、クエリを拡張又は改善し、拡張又は改善されたクエリを用いて、検索を実行する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年、分野によっては、検索システムに、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することが求められている。例えば、サイバー攻撃の分析においては、検索システムによって、コンピュータシステムのログの集合が蓄積されたデータベースから、攻撃者の活動の痕跡を網羅的に抽出することが求められている。
【0006】
このような抽出を可能にする手法としては、検索対象となるデータベースに対して、将来得られる未知のデータを考慮して、データ間の関係が記述されたクエリを与える手法が考えられる。
【0007】
しかしながら、クエリにおいてデータ間の関係を記述することは困難であるため、上記特許文献1に開示されたデータ検索システムであっても、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することは困難である。
【0008】
本発明の目的の一例は、上記問題を解消し、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出し得る、情報検索装置、情報検索方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の一側面における情報検索装置は、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータ を生成する、論理的推論部と、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成部と、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索部と、
を備えていることを特徴とする。
【0010】
また、上記目的を達成するため、本発明の一側面における情報検索方法は、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成する、論理的推論ステップと、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成ステップと、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索ステップと、
を有する、ことを特徴とする。
【0011】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成する、論理的推論ステップと、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成ステップと、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索ステップと、
実行させる、ことを特徴とする。
【発明の効果】
【0012】
以上のように本発明によれば、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施の形態1における情報検索装置の概略構成を示すブロック図である。
【
図2】
図2は、実施の形態1における情報検索装置の構成を具体的に示すブロック図である。
【
図3】
図3は、実施の形態1において行われた論理的推論の結果を模式的に示す図である。
【
図4】
図4は、実施の形態1において行われたクエリ生成の過程を模式的に示す図である。
【
図5】
図5は、実施の形態1における情報検索装置の動作を示すフロー図である。
【
図6】
図6は、実施の形態1で用いられる観測事象データ及び事象間の関係を示すルールの一例を示す図である。
【
図7】
図7は、実施の形態1において仮説推論によって生成された仮説の一例を示す図である。
【
図8】
図8は、実施の形態1において行われたグルーピングの一例を示す図である。
【
図9】
図9は、実施の形態1において作成されるクエリの一例を示す図である。
【
図10】
図10は、実施の形態1による検索処理の結果の一例を示す図である。
【
図11】
図11は、実施の形態1の変形例において階層化知識から得られた、階層構造を持つ仮説の一例を示す図である。
【
図12】
図12は、実施の形態2における情報検索装置の構成を示すブロック図である。
【
図13】
図13は、実施の形態2において行われたグルーピングの一例を示す図である。
【
図14】
図14は、実施の形態2における情報検索装置の動作を示すフロー図である。
【
図15】
図15は、実施の形態1及び2における情報検索装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0014】
(実施の形態1)
以下、実施の形態1における、情報検索装置、情報検索方法、及びプログラムについて、
図1~
図11を参照しながら説明する。
【0015】
[装置構成]
最初に、実施の形態1における情報検索装置の概略構成について
図1を用いて説明する。
図1は、実施の形態1における情報検索装置の概略構成を示すブロック図である。
【0016】
図1に示す、実施の形態1における情報検索装置100は、データ集合から必要な情報を検索するための装置である。
図1に示すように、情報検索装置100は、論理的推論部10と、クエリ生成部20と、データ検索部30とを備えている。
【0017】
論理的推論部10は、観測された事象を示すデータ(以下「観測事象データ」と表記する。)の集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、論理的推論によって一連の事象についてのデータを生成する。
【0018】
クエリ生成部20は、論理的推論部10が生成した一連の事象についてのデータと、事象間の関係を示すルールとに基づいて、観測事象データの集合から、一連の事象に関係するデータを抽出するための条件(以下「データ抽出条件」と表記する。)を決定する。そして、クエリ生成部20は、決定した条件を用いてクエリを生成する。
【0019】
データ検索部30は、クエリ生成部20が生成したクエリを用いて、観測事象データの集合に対して、検索処理を実行する。
【0020】
このように、実施の形態1では、まず、論理的推論が行われて一連の事象についてのデータが生成される。この生成されたデータは、互いに関係した一連の事象を特定するための手がかりとなり、このデータからクエリが生成される。このため、実施の形態1によれば、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することができる。
【0021】
続いて、
図2~
図4を用いて、実施の形態1における情報検索装置の構成及び機能について具体的に説明する。
図2は、実施の形態1における情報検索装置の構成を具体的に示すブロック図である。
【0022】
図2に示すように、実施の形態1においては、情報検索装置100は、上述した論理的推論部10、クエリ生成部20、及びデータ検索部30に加えて、観測事象データ格納部40と、知識格納部50と、表示部60とを備えている。なお、観測事象データ格納部40及び知識格納部50は、データベースであり、情報検索装置100とネットワークを介して接続されたコンピュータの記憶装置によって構築されていても良い。
【0023】
観測事象データ格納部40は、観測事象データを格納している。実施の形態1では、観測事象データは、事象の名称と、事象が発生した又は観測された日時及び場所とを含んでいる。
【0024】
知識格納部50は、事象間の関係を示すルール(以下、単に「ルール」とも表記する)を格納している。実施の形態1では、事象間の関係を示すルールは、事象で表現された前提と、前提に対応する帰結と、の組の集合で構成されている。
【0025】
論理的推論部10は、実施の形態1では、論理的推論として、仮説推論を実行し、一連の事象についてのデータとして、一連の事象についての仮説を生成することができる。また、仮説推論は、例えば、Open-David(例えば、https://github.com/aurtg/open-david参照)等の仮説推論エンジンを実装することによって実現可能である。なお、論理的推論部10は、論理的推論として、仮説推論ではなくて、例えば、演繹推論を実行することもできる。
【0026】
論理的推論部10が仮説推論を実行する場合は、クエリ生成部20は、一連の事象についてのデータである一連の事象に関係する仮説と、事象間の関係を示すルールと、事象それぞれの名称と、事象が発生した又は観測された日時及び場所とに基づいて、データ抽出条件を決定する。
【0027】
ここで、クエリ生成部20の機能について
図3及び
図4を用いて具体的に説明する。
図3は、実施の形態1において行われた論理的推論の結果を模式的に示す図である。
図4は、実施の形態1において行われたクエリ生成の過程を模式的に示す図である。また、
図2に示したように、クエリ生成部20は、実施の形態1では、階層化部21と、制約条件決定部22と、クエリ出力部23とを備えている。
【0028】
まず、クエリ生成部20に、
図3に示す論理的推論の結果、即ち、生成された仮説が入力される。
図3の例では、仮説は、有向グラフとして示されており、矢印は、前提から帰結への関係を示している。
図3において、a~hは、観測事象データ、即ち、仮説中の観測された事象を表している部分、即ち、前提を示している。また、
図3において、1~5は、仮説中の知識の要素、即ち、事象間の関係を示すルールに含まれる帰結を示している。
【0029】
階層化部21は、
図4の上段の図に示すように、仮説中の観測された事象を表している部分a~hによって最下層を設定し、事象間の関係を示すルールに含まれる帰結1~5を用いて、最下層より上位にある事象の層を設定して、事象の階層構造を構築する。また、階層化部21は、最下層を設定した後に最上層となる要素を決定し、その後、最上層からの距離(つながりの数)に基づいて、事象の中間層となる要素を決定する。
【0030】
制約条件決定部22は、
図4の下段の図に示すように、観測事象データの集合に含まれる日時及び場所に基づいて、階層構造を構成する事象を複数のグループに分類する。
図4の下段の例では、制約条件決定部22は、時間(t±α)及び場所(x±β,y±γ)が重なる下位要素(観測事象データ)a~hを、共通の上位要素(ルールの帰結)1~5でグルーピングしている。なお、上述のα、β、及びγは、重なっていると認められる範囲を規定する閾値である。閾値の範囲内にある場合に、時間又は場所は、重なっていると判断される。
【0031】
また、下位要素が時間と場所以外で共通している複数のグループが存在する場合は、制約条件決定部22は、この共通している下位要素それぞれの上位要素間につながりがある場合は、この複数のグループ同士を更にグループ化する。
図4の下段の例では、下位要素dと下位要素eとが、時間と場所以外で共通しており、且つ、dの上位要素3はeの上位要素2の上位にあるので、3-dのグループと2-eのグループとは、統合されて1つのグループとされている。
【0032】
そして、制約条件決定部22は、グループ毎に、各グループに含まれる、事象の名称、日時、及び場所を用いて、観測事象データの集合から一連の事象に関係するデータを抽出するための条件を決定する。
【0033】
具体的には、制約条件決定部22は、グループ毎に、各グループに含まれる、事象の名称、日時、及び場所を抽出する。次いで、制約条件決定部22は、抽出した、事象の名称、日時、及び場所(つまり、上位要素が帰結となるルールの前提)を、観測事象データの集合から一連の事象に関係するデータを抽出するための条件として決定する。
【0034】
クエリ出力部23は、制約条件決定部22が決定した条件を用いて、所定の形式で記述されたクエリを生成し、生成したクエリを出力する。なお、所定の形式は、検索対象となるデータベース(実施の形態1では、観測事象データ格納部40)で利用可能な形式であれば良い。
【0035】
データ検索部30は、実施の形態1では、クエリ出力部23が出力したクエリを用いて、観測事象データ格納部40に格納されている観測事象データの集合に対して、検索処理を実行する。
【0036】
表示部60は、データ検索部30によって得られた検索結果を、表示装置、又は端末装置に出力する。これにより、表示装置の画面、又は端末装置が備える表示装置の画面に、検索結果が表示される。
【0037】
[装置動作]
次に、実施の形態1における情報検索装置100の動作について
図5を用いて説明する。
図5は、実施の形態1における情報検索装置の動作を示すフロー図である。以下の説明においては、適宜
図1~
図4を参照する。また、実施の形態1では、情報検索装置100を動作させることによって、情報検索方法が実施される。よって、実施の形態における情報検索方法の説明は、以下の情報検索装置100の動作説明に代える。
【0038】
図5に示すように、最初に、論理的推論部10は、観測事象データ格納部40に格納されている観測事象データの集合に対して、知識格納部50に格納されているルールを適用して、仮説推論を実行し、一連の事象についての仮説を生成する(ステップA1)。
【0039】
次に、クエリ生成部20において、階層化部21は、仮説中の観測された事象を表している部分によって最下層を設定し、事象間の関係を示すルールに含まれる帰結を用いて、最下層より上位にある事象の層を設定する。そして、クエリ生成部20は、ルールの向き(前提→帰結)に従って、事象の階層構造(木構造)を構築する(ステップA2)。
【0040】
次に、クエリ生成部20において、制約条件決定部22は、
図4の下段の図に示すように、観測事象データの集合に含まれる日時及び場所に基づいて、階層構造を構成する事象を複数のグループに分類する(ステップA3)。
【0041】
次に、制約条件決定部22は、グループ毎に、各グループに含まれる、事象の名称、日時、及び場所を抽出する(ステップA4)。
【0042】
次に、制約条件決定部22は、抽出した、事象の名称、日時、及び場所を、観測事象データの集合から一連の事象に関係するデータを抽出するための条件として、決定する(ステップA5)。
【0043】
次に、クエリ出力部23が、決定された条件を用いて、所定の形式で記述されたクエリを生成し、生成したクエリを、データ検索部30に出力する(ステップA6)。
【0044】
次に、データ検索部30は、クエリ生成部20が生成したクエリを用いて、観測事象データ格納部40に格納されている観測事象データの集合に対して、検索処理を実行する(ステップA7)。
【0045】
ステップA7の実行後、表示部60は、データ検索部30によって得られた検索結果を、表示装置、又は端末装置に出力して、検索結果を画面上に表示させる。
【0046】
[具体例]
続いて、実施の形態1における具体例について、
図6~
図10を用いて、
図5に示した各ステップに沿って説明する。
図6は、実施の形態1で用いられる観測事象データ及び事象間の関係を示すルールの一例を示す図である。
【0047】
図6の例では、観測事象データは、あるイベントを表すログデータを、一階述語論理式に変換して得られている。また、事象間の関係を示すルールは、あるイベントについて作成されている。
【0048】
ステップA1では、論理的推論部10は、
図6に示す観測事象データの集合に対して、
図6に示すルールを適用して、仮説推論を実行し、一連の事象についての仮説を生成する。生成された仮説は、
図7に示す通りである。
図7は、実施の形態1において仮説推論によって生成された仮説の一例を示す図である。
【0049】
ステップA2では、クエリ生成部20において、階層化部21は、
図7に示す仮説中の事象を表している以下の部分によって、事象の階層構造の最下層を設定する。
“hasAttachedFile”
“isUnknownSender”
“emailReceived”
“openFile”
“vulnerableProgramExecuted”
“exeFileCreated”
“isAbnormalWorkTime”
“remoteLogon”
【0050】
また、階層化部21は、
図6に示す事象間の関係を示すルールに含まれる以下の帰結を用いて、事象の階層構造における最下層より上位にある層を設定する。
“suspiciousFileReceived”
“malwareInjected”
“suspiciousExeCreated”
“lateralMovement”
“suspiciousLogon”
【0051】
ステップA3では、クエリ生成部20において、制約条件決定部22は、
図8に示すように、観測事象データの集合に含まれる日時及び場所に基づいて、階層構造を構成する事象を複数のグループに分類する。
図8は、実施の形態1において行われたグルーピングの一例を示す図である。また、
図8においては、事象の階層的なグルーピングは実線による矩形であらわしている。
【0052】
ステップA4では、制約条件決定部22は、
図8に示すグループ毎に、各グループに含まれる、事象の名称、日時、及び場所を抽出する。そして、ステップA5では、制約条件決定部22は、抽出した、事象の名称、日時、及び場所を、観測事象データの集合から一連の事象に関係するデータを抽出するための条件として、決定する。更に、ステップA6では、クエリ出力部23が、決定された条件を用いて、所定の形式で記述されたクエリを生成する。
【0053】
ステップA4~A6を経て生成されたクエリは、例えば、
図9に示す通りとなる。
図9は、実施の形態1において作成されるクエリの一例を示す図である。
図9の例において、「+100」及び「-100」は、同じ時間と見なすことができる値(閾値)を示している。また、
図9の例では、クエリは、malwareInjectedに関するクエリと、suspiciousLogonに関するクエリと、lateralMovementに関するクエリとの3つが示されている。
【0054】
ステップA7では、データ検索部30は、
図9に示したクエリを用いて、観測事象データ格納部40に格納されている観測事象データの集合に対して、検索処理を実行する。検索処理の結果は、
図10に示す通りとなり、表示部60によって画面上に表示される。
図10は、実施の形態1による検索処理の結果の一例を示す図である。
【0055】
図10においては、検索処理の結果として、ルールの帰結として成立する事象毎に、その根拠となるデータの組が示されている。また、
図10において、「remoteLogon(“23:30:05”, “host1”, “host5”), isAbnormalWorkTime(“23:30:05”)」は、仮説推論の結果には含まれていないが、観測事象データの集合には含まれている組合せである。
【0056】
[実施の形態1における効果]
以上のように、実施の形態1では、観測事象データにルールを適用して仮説推論が行われ、生成された仮説は、一連の事象を特定するための手がかりとなる。また、生成された仮説から、一連の事象に関係するデータを抽出するための条件が導かれ、導かれた条件から、クエリが生成される。このため、実施の形態1によれば、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することができる。
【0057】
[変形例]
ここで、
図11を用いて、実施の形態1における変形例について説明する。変形例では、クエリ生成部20において、階層化部21は、予め構築されて知識格納部50に格納されている階層化知識に基づいて、論理的推論部10によって生成された仮説から事象の階層構造を構築する。
【0058】
階層化知識としては、例えば、サイバー攻撃の様々な戦術を上位層、各戦術を実現するための戦法を下位層とした、階層構造を持つ知識が挙げられる。また、この階層化知識には、各戦法の具体的な手順、各戦法で利用されるツール、各戦法を用いた攻撃の検出方法等が、含まれていても良い。具体的には、階層構造を持つ知識としては、例えば、MITRE社の「ATT&CK Matrix for Enterprise」(参考:https://attack.mitre.org/)が挙げられる。
図11は、実施の形態1の変形例において階層化知識から得られた、階層構造を持つ仮説の一例を示す図である。
【0059】
制約条件決定部22は、変形例においても、観測事象データの集合に含まれる日時及び場所に基づいて、階層構造を構成する事象を複数のグループに分類し、グループ毎に、各グループに含まれる、事象の名称、日時、及び場所を用いて、観測事象データの集合から一連の事象に関係するデータを抽出するための条件を決定する。
【0060】
クエリ出力部23も、変形例において、制約条件決定部22が決定した条件を用いて、所定の形式で記述されたクエリを生成し、生成したクエリを出力する。
【0061】
このように、変形例によれば、階層化知識に基づいて仮説から階層構造が構築される。このため、仮説中のどの事象がどの階層に属するかがグループ化の結果に依らず一意に決定されるので、一定した分類でクエリの生成及び検索結果の表示が可能となる。
【0062】
[プログラム]
実施の形態1におけるプログラムとしては、コンピュータに、
図5に示すステップA1~A7を実行させるプログラムが挙げられる。このプログラムをコンピュータにインストールし、実行することによって、実施の形態1における情報検索装置100と情報検索方法とを実現することができる。この場合、コンピュータのプロセッサは、論理的推論部10、クエリ生成部20、データ検索部30、及び表示部60として機能し、処理を行なう。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0063】
また、実施の形態1では、観測事象データ格納部40及び知識格納部50は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、情報検索装置とは別のコンピュータの記憶装置によって実現されていても良い。
【0064】
実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、論理的推論部10、クエリ生成部20、データ検索部30、及び表示部60のいずれかとして機能しても良い。
【0065】
(実施の形態2)
次に、実施の形態2における、情報検索装置、情報検索方法、及びプログラムについて、
図12~
図15を参照しながら説明する。
【0066】
[装置構成]
最初に、実施の形態2における情報検索装置の構成について
図12を用いて説明する。
図12は、実施の形態2における情報検索装置の構成を示すブロック図である。
【0067】
図12に示す、実施の形態2における情報検索装置101も、
図1及び
図2に示した実施の形態1における情報検索装置100と同様に、データ集合から必要な情報を検索するための装置である。但し、実施の形態2においては、情報検索装置101は、クエリ生成部20の機能の点で、実施の形態1における情報検索装置100と異なっている。以下、相違点を中心に説明する。
【0068】
図12に示すように、実施の形態2における情報検索装置101は、クエリ生成部20において、階層化部21、制約条件決定部22、及びクエリ出力部23に加えて、制約範囲決定部24を更に備えている。
【0069】
制約範囲決定部24は、階層化部21によって構築された事象の階層構造において、観測事象データの集合から一連の事象に関係するデータを抽出するための条件を決定するために用いる層を決定する。
【0070】
具体的には、制約範囲決定部24は、まず、階層化部21によって事象の階層構造が構築されると、表示部60に、この階層構造の画面上の表示を行わせる。その後、管理者等が、入力機器又は端末装置を介して、層を選択すると、制約範囲決定部24は、選択された層及びその上位の層を、条件決定に用いる層に決定する。
【0071】
また、制約条件決定部22は、実施の形態2では、決定した層
及びそれよりも上位の層のみを、複数のグループに分類する。例えば、
図13に示すように、第3階層が選択されると、制約条件決定部22は、第3階層及びその上位の第4階層をグループに分類する。
図13は、実施の形態2において行われたグルーピングの一例を示す図である。
【0072】
そして、制約条件決定部22は、第3階層の要素(
図8の例における“malwareInjected(…)”及び“suspiciousLogon(…)”)を帰結とする全ルールの前提を取得し、取得した各前提を帰結とする全ルールの前提を更に取得する。制約条件決定部22は、このような手順を、前提が階層構造の終端に達するまで繰り返し、最終的に得られた前提を元にクエリを生成する。なお、ここでいう前提は、各ルールによって帰結を導くための前提であり、最終的に得られた前提が、観測事象データの集合から一連の事象に関係するデータを抽出するための条件となる。
【0073】
実施の形態2では、このように、クエリが、事象の階層構造を構成するいくつかの層に限定して生成される。そして、下位の層によってクエリが生成された場合は、得られた仮説により合致したデータが検索され、上位の層によってクエリが生成された場合は、得られた仮説の大まかな構造のみに従うデータが幅広く検索されることになる。
【0074】
また、上述の例では、制約範囲決定部24は、事象の階構造の層にのみ制約を与えているが、実施の形態2では、仮説から得られるデータに時刻による制約を与えることもできる。この場合は、制約された期間内の時刻を持つ仮説のみによる要素だけを用いて、グループへの分類が行われて、クエリが生成される。
【0075】
[装置動作]
次に、実施の形態2における情報検索装置101の動作について
図14を用いて説明する。
図14は、実施の形態2における情報検索装置の動作を示すフロー図である。以下の説明においては、適宜
図12及び
図13を参照する。また、実施の形態2では、情報検索装置101を動作させることによって、情報検索方法が実施される。よって、実施の形態における情報検索方法の説明は、以下の情報検索装置101の動作説明に代える。
【0076】
図5に示すように、最初に、論理的推論部10は、観測事象データ格納部40に格納されている観測事象データの集合に対して、知識格納部50に格納されているルールを適用して、仮説推論を実行し、一連の事象についての仮説を生成する(ステップB1)。
【0077】
次に、クエリ生成部20において、階層化部21は、仮説中の観測された事象を表している部分によって最下層を設定し、事象間の関係を示すルールに含まれる帰結を用いて、最下層より上位にある事象の層を設定して、事象の階層構造を構築する(ステップB2)。
【0078】
次に、クエリ生成部20において、制約範囲決定部24は、ステップB2で構築された事象の階層構造において、観測事象データの集合から一連の事象に関係するデータを抽出するための条件を決定するために用いる層を決定する(ステップB3)。
【0079】
次に、クエリ生成部20において、制約条件決定部22は、
図13に示すように、ステップB3で決定された層及びそれよりも上位の層のみを、観測事象データの集合に含まれる日時及び場所に基づいて、複数のグループに分類する(ステップB4)。
【0080】
次に、制約条件決定部22は、グループ毎に、各グループに含まれる、事象の名称、日時、及び場所を抽出する(ステップB5)。
【0081】
次に、制約条件決定部22は、抽出した、事象の名称、日時、及び場所を、観測事象データの集合から一連の事象に関係するデータを抽出するための条件として、決定する(ステップB6)。
【0082】
次に、クエリ出力部23が、決定された条件を用いて、所定の形式で記述されたクエリを生成し、生成したクエリを、データ検索部30に出力する(ステップB7)。
【0083】
次に、データ検索部30は、クエリ生成部20が生成したクエリを用いて、観測事象データ格納部40に格納されている観測事象データの集合に対して、検索処理を実行する(ステップB8)。
【0084】
ステップB8の実行後、表示部60は、データ検索部30によって得られた検索結果を、表示装置、又は端末装置に出力して、検索結果を画面上に表示させる。
【0085】
[実施の形態2における効果]
このように、実施の形態2では、事象の階層構造に制約を与えてクエリを生成できる。よって、下位の層によってクエリが生成された場合は、得られた仮説により合致したデータが検索され、上位の層によってクエリが生成された場合は、得られた仮説の大まかな構造のみに従うデータが幅広く検索される。実施の形態2によれば、検索者の目的に応じた検索結果を得ることができる。また、実施の形態2においても、実施の形態1で述べた効果を得ることができる。
【0086】
[プログラム]
実施の形態2におけるプログラムとしては、コンピュータに、
図14に示すステップB1~B8を実行させるプログラムが挙げられる。このプログラムをコンピュータにインストールし、実行することによって、実施の形態2における情報検索装置101情報検索方法とを実現することができる。この場合、コンピュータのプロセッサは、論理的推論部10、クエリ生成部20、データ検索部30、及び表示部60として機能し、処理を行なう。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0087】
また、実施の形態2においても、観測事象データ格納部40及び知識格納部50は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、情報検索装置とは別のコンピュータの記憶装置によって実現されていても良い。
【0088】
実施の形態2におけるプログラムも、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、論理的推論部10、クエリ生成部20、データ検索部30、及び表示部60のいずれかとして機能しても良い。
【0089】
[物理構成]
ここで、実施の形態1及び2におけるプログラムを実行することによって、情報検索装置を実現するコンピュータについて
図15を用いて説明する。
図15は、実施の形態1及び2における情報検索装置を実現するコンピュータの一例を示すブロック図である。
【0090】
図15に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0091】
また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。この態様では、GPU又はFPGAが、実施の形態におけるプログラムを実行することができる。
【0092】
CPU111は、記憶装置113に格納された、コード群で構成された実施の形態におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。
【0093】
また、実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0094】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0095】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0096】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0097】
なお、実施の形態1及び2における情報検索装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、情報検索装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0098】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記15)によって表現することができるが、以下の記載に限定されるものではない。
【0099】
(付記1)
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータ を生成する、論理的推論部と、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成部と、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索部と、
を備えていることを特徴とする情報検索装置。
【0100】
(付記2)
付記1に記載の情報検索装置であって、
前記観測された事象を示すデータの集合が、前記事象の名称と、前記事象が発生した又は観測された日時及び場所とを含み、
前記事象間の関係を示すルールが、前記事象で表現された前提と前記前提に対応する帰結との組の集合で構成され、
前記論理的推論部が、前記論理的推論として、仮説推論を実行し、前記一連の事象についてのデータとして、前記一連の事象についての仮説を生成し、
前記クエリ生成部が、前記一連の事象についてのデータである前記一連の事象に関係する仮説と、 前記事象間の関係を示すルールと、前記事象それぞれの名称と、前記日時及び前記場所とに基づいて、前記条件を決定する、
ことを特徴とする情報検索装置。
【0101】
(付記3)
付記2に記載の情報検索装置であって、
前記クエリ生成部が、
前記仮説中の前記観測された事象を表している部分によって最下層を設定し、前記ルールに含まれる前記帰結を用いて、前記最下層より上位にある事象の層を設定して、事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索装置。
【0102】
(付記4)
付記2に記載の情報検索装置であって、
前記クエリ生成部が、
予め構築されている階層化知識に基づいて、生成された前記仮説から事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索装置。
【0103】
(付記5)
付記3または4に記載の情報検索装置であって、
前記クエリ生成部が、構築した前記階層構造において、前記条件の決定に用いる層を決定し、決定した層及びそれよりも上位の層のみを、前記複数のグループに分類する、
ことを特徴とする情報検索装置。
【0104】
(付記6)
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成する、論理的推論ステップと、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成ステップと、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索ステップと、
を有する、ことを特徴とする情報検索方法。
【0105】
(付記7)
付記6に記載の情報検索方法であって、
前記観測された事象を示すデータの集合が、前記事象の名称と、前記事象が発生した又は観測された日時及び場所とを含み、
前記事象間の関係を示すルールが、前記事象で表現された前提と前記前提に対応する帰結との組の集合で構成され、
前記論理的推論ステップにおいて、前記論理的推論として、仮説推論を実行し、前記一連の事象についてのデータとして、前記一連の事象についての仮説を生成し、
前記クエリ生成ステップにおいて、前記一連の事象についてのデータである前記一連の事象に関係する仮説と、前記事象間の関係を示すルールと、前記事象それぞれの名称と、前記日時及び前記場所とに基づいて、前記条件を決定する、
ことを特徴とする情報検索方法。
【0106】
(付記8)
付記7に記載の情報検索方法であって、
前記クエリ生成ステップにおいて、
前記仮説中の前記観測された事象を表している部分によって最下層を設定し、前記ルールに含まれる前記帰結を用いて、前記最下層より上位にある事象の層を設定して、事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索方法。
【0107】
(付記9)
付記7に記載の情報検索方法であって、
前記クエリ生成ステップにおいて、
予め構築されている階層化知識に基づいて、生成された前記仮説から事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とする情報検索方法。
【0108】
(付記10)
付記8または9に記載の情報検索方法であって、
前記クエリ生成ステップにおいて、構築した前記階層構造において、前記条件の決定に用いる層を決定し、決定した層及びそれよりも上位の層のみを、前記複数のグループに分類する、
ことを特徴とする情報検索方法。
【0109】
(付記11)
コンピュータに、
観測された事象を示すデータの集合に、事象間の関係を示すルールを適用して、論理的推論を実行し、前記論理的推論によって一連の事象についてのデータを生成する、論理的推論ステップと、
前記一連の事象についてのデータと前記事象間の関係を示すルールとに基づいて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、決定した前記条件を用いてクエリを生成する、クエリ生成ステップと、
生成された前記クエリを用いて、前記観測された事象を示すデータの集合に対して、検索処理を実行する、データ検索ステップと、
実行させる、プログラム。
【0110】
(付記12)
付記11に記載のプログラムであって、
前記観測された事象を示すデータの集合が、前記事象の名称と、前記事象が発生した又は観測された日時及び場所とを含み、
前記事象間の関係を示すルールが、前記事象で表現された前提と前記前提に対応する帰結との組の集合で構成され、
前記論理的推論ステップにおいて、前記論理的推論として、仮説推論を実行し、前記一連の事象についてのデータとして、前記一連の事象についての仮説を生成し、
前記クエリ生成ステップにおいて、前記一連の事象についてのデータである前記一連の事象に関係する仮説と、前記事象間の関係を示すルールと、前記事象それぞれの名称と、前記日時及び前記場所とに基づいて、前記条件を決定する、
ことを特徴とするプログラム。
【0111】
(付記13)
付記12に記載のプログラムであって、
前記クエリ生成ステップにおいて、
前記仮説中の前記観測された事象を表している部分によって最下層を設定し、前記ルールに含まれる前記帰結を用いて、前記最下層より上位にある事象の層を設定して、事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とするプログラム。
【0112】
(付記14)
付記12に記載のプログラムであって、
前記クエリ生成ステップにおいて、
予め構築されている階層化知識に基づいて、生成された前記仮説から事象の階層構造を構築し、
更に、前記観測された事象を示すデータの集合に含まれる前記日時及び場所に基づいて、前記階層構造を構成する事象を複数のグループに分類し、
そして、前記グループ毎に、当該グループに含まれる、前記事象の名称、前記日時、及び前記場所を用いて、前記観測された事象を示すデータの集合から前記一連の事象に関係するデータを抽出するための条件を決定し、
決定した前記条件を用いて、所定の形式で記述された前記クエリを生成する、
ことを特徴とするプログラム。
【0113】
(付記15)
付記13または14に記載のプログラムであって、
前記クエリ生成ステップにおいて、構築した前記階層構造において、前記条件の決定に用いる層を決定し、決定した層及びそれよりも上位の層のみを、前記複数のグループに分類する、
ことを特徴とするプログラム。
【0114】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0115】
以上のように本発明によれば、互いに潜在的関係を持つデータ集合から、一連の経緯に関わるデータを網羅的に抽出することができる。本発明は、種々の検索システムに有用である。
【符号の説明】
【0116】
10 論理的推論部
20 クエリ生成部
30 データ検索部
21 階層化部
22 制約条件決定部
23 クエリ出力部
24 制約範囲決定部
40 観測事象データ格納部
50 知識格納部
60 表示部
100 情報検索装置(実施の形態1)
101 情報検索装置(実施の形態2)
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス