(57)【特許請求の範囲】
【請求項１】
分析対象となる情報と前記情報の種別を示す分析種別との入力を受け付ける受付部と、
情報源に含まれる複数の情報のうち一の情報と他の情報との関係性を示す関係分析情報に基づいて、グラフ構造における前記一の情報および前記他の情報であるノードと、前記ノード間の関係性を示すエッジとを定めた構造化情報を生成する関係情報生成部と、
前記構造化情報の中から前記受付部が受け付けた前記分析対象となる情報を抽出し、抽出した情報を起点ノードとして出力する起点情報検索部と、
生成した構造化情報により表現される前記グラフ構造をクラスタリングして前記起点ノードを含む部分グラフ構造を抽出する分類可達性分析部と、
前記分析種別に対応する前記起点ノードの終点となる抽出対象ノードを前記部分グラフ構造の中から検索し、前記起点ノードと前記抽出対象ノードとの間の独立パスの数を算出し、前記独立パスの数が最も多い前記抽出対象ノードを前記起点ノードと最も前記関係性があるノードとして出力する結合性分析部と、
を備えることを特徴とする情報分析システム。
【請求項２】
前記分類可達性分析部は、あらかじめ定められた前記ノードの種別または前記エッジの種別と前記分析種別との間の関係の重要性を示す重み情報に基づいて前記グラフ構造をクラスタリングし、前記部分グラフ構造を抽出する、
ことを特徴とする請求項１に記載の情報分析システム。
【請求項３】
前記結合性分析部は、前記独立パスの数が多いほどまたは前記起点ノードと前記抽出対象ノードとの間の共通パスが少ないほど強い状況証拠として前記ノードを出力する、
ことを特徴とする請求項１に記載の情報分析システム。
【請求項４】
前記結合性分析部は、あらかじめ定められた前記分析種別と出力される前記ノードのカテゴリとを対応付けた抽出対象指定情報に基づいて、前記分析種別に対応する前記カテゴリに属する前記ノードを検索し、検索した前記ノードを前記関係性があるノードとして出力する、
ことを特徴とする請求項１に記載の情報分析システム。
【請求項５】
情報分析システムが実行する情報分析方法であって、
受付部が、分析対象となる情報と前記情報の種別を示す分析種別との入力を受け付ける受付ステップと、
関係情報生成部が、情報源に含まれる複数の情報のうち一の情報と他の情報との関係性を示す関係分析情報に基づいて、グラフ構造における前記一の情報および前記他の情報であるノードと、前記ノード間の関係性を示すエッジとを定めた構造化情報を生成する関係情報生成ステップと、
起点情報検索部が、前記構造化情報の中から前記受付部が受け付けた前記分析対象となる情報を抽出し、抽出した情報を起点ノードとして出力する起点情報検索ステップと、
分類可達性分析部が、生成した構造化情報により表現される前記グラフ構造をクラスタリングして前記起点ノードを含む部分グラフ構造を抽出する分類可達性分析ステップと、
結合性分析部が、前記分析種別に対応する前記起点ノードの終点となる抽出対象ノードを前記部分グラフ構造の中から検索し、前記起点ノードと前記抽出対象ノードとの間の独立パスの数を算出し、前記独立パスの数が最も多い前記抽出対象ノードを前記起点ノードと最も前記関係性があるノードとして出力する結合性分析ステップと、
を含むことを特徴とする情報分析方法。
【請求項６】
前記分類可達性分析部は、前記分類可達性分析ステップにおいて、あらかじめ定められた前記ノードの種別または前記エッジの種別と前記分析種別との間の関係の重要性を示す重み情報に基づいて前記グラフ構造をクラスタリングし、前記部分グラフ構造を抽出する、
ことを特徴とする請求項５に記載の情報分析方法。
【請求項７】
前記結合性分析部は、前記結合性分析ステップにおいて、前記独立パスの数が多いほどまたは前記起点ノードと前記抽出対象ノードとの間の共通パスが少ないほど強い状況証拠として前記ノードを出力する、
ことを特徴とする請求項５に記載の情報分析方法。
【請求項８】
前記結合性分析部は、前記結合性分析ステップにおいて、あらかじめ定められた前記分析種別と出力される前記ノードのカテゴリとを対応付けた抽出対象指定情報に基づいて、前記分析種別に対応する前記カテゴリに属する前記ノードを検索し、検索した前記ノードを前記関係性があるノードとして出力する、
ことを特徴とする請求項５に記載の情報分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を分析する情報分析システム、情報分析方法に関する。
【背景技術】
【０００２】
近年、組織のＩＴシステムは多種多様且つ多数の機器やアプリケーションを内包する複雑なものとなってきている。したがって、何か異常が起こった際、その異常がどのようなものであるかの調査・把握が困難になっており、長時間を要するようになっている。なお、上記の異常とは、運用に伴ってシステムが物理的に故障したり、実装上の不具合でアプリケーションが停止したり、あるいは、組織を狙った外部からの攻撃によって不具合が発生することなどを意味する。
【０００３】
特に近年においては、組織システムや商用システムの運用オペレーション、セキュリティオペレーションの外部委託が進んでおり、受託側は巨大かつ多様なシステムの異常に対応する必要があるため、異常対応の短時間化、低コスト化のニーズが高まっている。異常への対応は、過去の類似事例など、蓄積したノウハウを用いることで効率的に行えることが多い。すなわち、膨大なログやレポート、公開情報などから適切な類似事例を探し出す技術を活用することで効率化を図ることが可能である。  ただし、ログやレポートは情報源によって様々な形態をしており、また起こる異常もその都度様々な情報を契機として発覚することから、単純な検索では類似事例を見つけ出すことが困難である課題がある。
上記の単純な検索とは、情報をあらかじめ特定のキーごとに分割して保持し、キーを突合せて分析するような検索を指す。
【０００４】
以上に述べた課題を解決する技術としては、特許文献１に記すような技術がある。この技術では、情報をグラフ構造として保持し、検索条件の起点となったノードに指定した初期値を設定して一定比率で減少させながら伝播させ、最終的に閾値以上となったノード集合を検索結果として出力することで、既存の検索においては容易にたどり着かない情報を効率的に取得する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９１９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に拠れば、情報と情報の間の関係性をグラフ構造として保持してクラスタリングすることできるため、検索対象情報と何らかの関係がある情報を、その関係性を検索前に意識することなく抽出することができ、既存の検索方式と比較して、それまでに蓄積した情報を効果的に利用できる利点がある。
【０００７】
しかしながら、運用オペレーションやセキュリティオペレーションの事例分析に適用することを考えた場合、例えば、悪性を疑われる通信について過去の類似レポートを調査する場合など、検索結果が間違っていれば正常な通信を誤って遮断してしまうリスクがある。
【０００８】
そのような、システムの動作に悪影響を与え得る重要な判断を行う場合には、対策の決定者が、検索結果を基にして責任を持った判断が行える必要がある。そのために必要となる情報としては、検索結果として提示される情報自体も重要であるが、それに加えて、如何なる理由でその検索結果が検索対象と関係があるのか、という、その検索結果情報を参考情報として採用するに至る、根拠情報が不可欠である。
【０００９】
ここで、上述の責任を持った判断が行える、とは具体的には、検索システムの検索ロジックについて知識を有さない第三者に対して、対策の決定者が、なぜ自らがそのような判断を行ったのかを説明可能であることである。
【００１０】
また同様に、対策の決定者が、如何なる理由で検索結果が検索対象と関係しているのかを理解できなければ、関連事例や対策として、複数の異なる情報が検索結果として出力された場合に、どちらの情報を用いてよいのかそもそも判断が行えないという問題もある。
【００１１】
従来技術には、上述したような問題についての特別な記載はなく、したがって、従来技術のシステムが、操作者が意図せずに検索した情報を、責任を伴った判断の材料として活用することは難しい。
【００１２】
本発明は掛かる課題を鑑みてなされたものであり、探索クエリに対して関係の強い情報を、その根拠と共に利用者に提示することで、重要な意思決定においても検索結果を利用可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【００１４】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、分析対象となる情報と前記情報の種別を示す分析種別との入力を受け付ける受付部と、情報源に含まれる複数の情報のうち一の情報と他の情報との関係性を示す関係分析情報に基づいて、グラフ構造における前記一の情報および前記他の情報であるノードと、前記ノード間の関係性を示すエッジとを定めた構造化情報を生成する関係情報生成部と、前記構造化情報の中から前記受付部が受け付けた前記分析種別を含む情報を抽出し、抽出した情報を起点ノードとして出力する起点情報検索部と、抽出した情報により表現される前記グラフ構造をクラスタリングして前記起点ノードを含む部分グラフ構造を抽出する分類可達性分析部と、前記分析種別に対応する前記起点ノードの終点となる抽出対象ノードを前記部分グラフ構造の中から検索し、前記起点ノードと前記抽出対象ノードとの間の独立パスの数を算出し、前記独立パスの数が最も多い前記抽出対象ノードを前記起点ノードと最も前記関係性があるノードとして出力する結合性分析部と、を備えることを特徴とする情報分析システムとして構成される。
【００１５】
また、本発明は、上記情報分析システムで行われる情報分析方法としても把握される。
【発明の効果】
【００１６】
本発明に拠れば、情報を分析する際に、分析クエリに対して関係の強い情報を、その根拠と共に利用者に提示すること可能となる。これにより、分析結果の情報を利用者が納得した上で活用する、あるいは活用しない、といった判断が可能になるため、リスクを伴うような重要な判断を行う場面であっても分析結果を活用できるようになる。
【図面の簡単な説明】
【００１７】
【図１】本発明を適用したシステムの構成図の例である。
【図２】計算機の構成の例を示す図である。
【図３】構造化情報の例である。
【図４】関係分析ロジックの例である。
【図５】枝重み情報の例である。
【図６】抽出対象指定情報の例である。
【図７】出力生成ロジックの例である。
【図８】構造化情報を形成する処理の例である。
【図９】構造化情報を分析する処理の例である。
【図１０】構造化情報の構造を表す例である。
【図１１】分類・可達性分析の処理例である。
【図１２】可達性分析結果を表す例である。
【図１３】結合性分析を表す例である。
【図１４】結果の表示例である。
【発明を実施するための形態】
【００１８】
以下、実施例を図面を用いて説明する。
【００１９】
図１は、本願の技術を適用した情報分析システムの構成図の例である。
【００２０】
情報分析システム１０００は本発明にかかる情報分析システム、情報分析方法を適用したシステムであり、情報源１１００から各種の情報を取得し、関係性を分析した上で情報を構造化情報１０５１に保持し、また、分析依頼者１２００からの分析依頼に基づいて上記の蓄積した情報を分析してその結果を返すシステムである。なお、それぞれの処理の詳細については後述する。
【００２１】
情報取得部１００１、および、関係情報生成部１００２はいずれも、後述する図８に示す構造化情報の形成処理において用いる機能である。
【００２２】
情報取得部１００１は、図８に後述する構造化情報の形成処理において用いる機能であり、情報源１１００から各種の情報を取得し、関係情報生成部１００２に当該情報を入力する機能である。
【００２３】
情報源１１００から機械的に情報を取得する場合には、各情報源１１００用のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を具備する。
【００２４】
また、その際、取得する情報のフォーマットは後述の関係分析ロジック１０５２の入力情報種別４００１で規定された種別の何れかでなければならない。
【００２５】
情報源１１００が本システムの運用員の手入力である場合には、情報取得部１００１は手入力用のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備える必要がある。上記ＵＩは、関係分析ロジック１０５２の入力情報種別４００１で規定された種別の何れかを入力するための機構であってもよいし、あるいは、後述の構造化情報１０５１を直接編集するための機構であってもよい。
【００２６】
情報源１１００として手入力を受け付けることで、例えば、「後になってから、以前挙がったアラートＡは実はマルウェアＢと関係があったことが判明した」といった場合のように、既に入力した特定の情報と別の特定の情報の関係を明示的に編集することができ、その結果、後述する分析処理を行う際に、機械的に分析した情報と人が判断して判る情報とを組み合わせて分析できるようになる。
【００２７】
情報源１１００としては、上述の情報源１１００の何れか一つのみに限るものではなく、情報源１１００として複数種類の機器やＷＥＢサイトなどを用い、それぞれにあわせて情報取得部１００１も複数保持することができる。
【００２８】
関係情報生成部１００２は、情報取得部１００１から受け取った情報について、関係分析ロジック１０５２を用いて、情報と、情報間の関係性をそれぞれ抽出するための機能であり、抽出結果は、構造化情報１０５１に格納する。処理の詳細は後述する。
【００２９】
分析受付・応答インタフェース１００３、起点情報検索部１００４、枝重要度決定部１００５、分類・可達性分析部１００６、結合性分析部１００７、出力生成部１００８の６つの機能はいずれも後述の図９に示す構造化情報の分析処理において用いる機能である。
【００３０】
分析受付・応答インタフェース１００３は、後述する分析依頼者１２００から、分析対象の情報と、分析種別を受け取り、後述の分析処理の結果を上記の分析依頼者１２００に返すためのインタフェースである。
【００３１】
起点情報検索部１００４は、分析受付・応答インタフェース１００３を介して分析依頼者１２００から受け取った分析対象の情報について、構造化情報１０５１の中で適合する情報を検索し、起点ノードである起点情報として返す機能である。処理の詳細については後述する。
【００３２】
枝重要度決定部１００５は、分類・可達性分析部１００６の前処理として、分析依頼者１２００が入力した分析種別情報と、枝重み情報１０５４を照らし合わせることで、それぞれの枝に重みを入れる処理である。
【００３３】
本処理は分類・可達性分析部１００６を実施するために必ずしも必要な処理ではない。すなわち、本処理を行わない場合、分析の種別に関わらず全ての枝を常に重さ１として処理することも可能である。
【００３４】
しかしながら、本処理を行うことで、分析種別毎に、特定の種別の情報や特定の種別の関係性を重要視する、あるいは逆に特定種別の関係性の存在を軽視する、といった処理が可能になり、分析の精度を向上できる効果がある。
【００３５】
分類・可達性分析部１００６は、まず、情報の構造を枝の重みも考慮した上でクラスタリングし、起点情報検索部１００４の結果である起点情報とその起点情報から到達可能な抽出対象ノードである抽出対象情報が含まれるクラスタを抽出する。さらに、抽出したクラスタの中で、抽出対象指定情報１０５３に含まれる分析種別を一つ以上含むクラスタのみを抽出する機能である。処理の詳細は後述するが、本処理の結果、分析種別に応じて、関係性の強い情報の一覧を取得することができる。
【００３６】
結合性分析部１００７は、本実施例で特に特徴的な機能であり、分類・可達性分析部１００６の結果を入力として、起点情報から、各抽出対象情報への独立パスの数を計算する処理である。詳細は後述する。
【００３７】
出力生成部１００８は、結合性分析部１００７の結果と、出力生成ロジック１０５５を用いて、分析受付・応答インタフェース１００３を介して最終的に分析依頼者１２００へ返すための出力を生成する処理である。詳細は後述する。
【００３８】
構造化情報１０５１は、情報分析システム１０００が分析対象とする情報である。保持する情報の詳細については図３を用いて後述する。
【００３９】
関係分析ロジック１０５２は、関係情報生成部１００２が使用する情報である。保持する情報の詳細については図４を用いて後述する。
【００４０】
抽出対象指定情報１０５３は、分類・可達性分析部１００６が使用する情報である。保持する情報の詳細については図６を用いて後述する。
【００４１】
枝重み情報１０５４は、枝重要度決定部１００５が使用する情報である。保持する情報の詳細については図５を用いて後述する。
【００４２】
出力生成ロジック１０５５は、出力生成部１００８が使用する情報である。保持する情報の詳細については図７を用いて後述する。
【００４３】
情報源１１００は、本システムが取り扱う情報を取得する際の情報源である。例えば情報源１１００は、ネットワーク機器やサーバ機器、あるいはセキュリティ機器であり、ログやアラートを情報として情報取得部１００１に渡す。また、例えば情報源１１００は、本システムの運用員などにより入力される情報である。人手により入力インタフェースを介して入力された情報源１１００は、情報取得部１００１に引き渡される。情報源１１００は、上記のいずれか一つのみに限るものではなく、それらを組み合わせた複数の情報源であってよい。
【００４４】
分析依頼者１２００は、情報分析システム１０００の利用者であり、分析したい対象の情報と、希望する分析種別を分析受付・応答インタフェース１００３を介して本システムに入力し、その結果を同じく分析受付・応答インタフェース１００３を介して受け取る。
【００４５】
図２は、図１の各構成要素の構成を例示した図である。
【００４６】
これらの機器２０００は、ＣＰＵ２００１と、メモリ２００２と、インターネットやＬＡＮを介して他の装置と通信を行うための通信装置２００４と、キーボードやマウス等の入力装置２００５と、モニタやプリンタ等の出力装置２００６と、読取装置２００７と、ハードディスク等の外部記憶装置２００３とが、インタフェース２００８を介して接続されている。また、読取装置２００７にはＩＣカードやＵＳＢメモリのような、可搬性を有する記憶媒体２００９を接続することができる。
【００４７】
本実施例における情報分析システム１０００を実現するための装置や機器は、これらの機能を実現するプログラムがメモリ２００２上にロードされ、ＣＰＵ２００１により実行されることにより具現化される。これらのプログラムは、あらかじめ、上記機器２０００の外部記憶装置２００３に格納されていても良いし、必要なときに、読取装置２００７や通信装置２００４と当該機器２０００が利用可能な媒体を介して、他の装置から上記外部記憶装置に導入されてもよい。
【００４８】
上記機器２０００が利用可能な媒体とは、たとえば、読取装置２００７に着脱可能な記憶媒体２００９、または通信装置２００４に接続可能なネットワーク２０１０またはネットワーク２０１０を伝搬する搬送波やディジタル信号を指す。そして、プログラムは一旦外部記憶装置２００３に格納された後、そこからメモリ２００２上にロードされてＣＰＵ２００１に実行されてもよいし、あるいは外部記憶装置２００３に格納されることなく、直接メモリ２００２上にロードされて、ＣＰＵ２００１に実行されてもよい。
【００４９】
図３は、情報分析システム１０００が保持する構造化情報１０５１の例を示した図である。
【００５０】
構造化情報１０５１としては、本システムは大きく、蓄積情報３０００と、関係性情報３１００の２種の情報を保持する必要がある。
【００５１】
蓄積情報３０００とは、本システムが蓄積する情報そのものであり、本実施例においては、例えば具体的には、図示したように、ｉｄ３００１と、種別３００２と、内容３００３の３つのカテゴリの情報を組にして保持する。
【００５２】
ｉｄ３００１は、個々の情報をユニークに識別するためのＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）であり、必須ではないが、保持することで処理を簡潔に記載することが可能になる。
【００５３】
種別３００２は、ノードが有する個々の情報がどのようなカテゴリのものであるかを識別するための情報であり、本実施例において、抽出指定情報１０５３や、枝重み情報１０５４、出力生成ロジック１０５５と組み合わせて用いることで分析精度を向上したり、出力情報に付加情報を加えたりする効果を得られる。詳細については後述する。
【００５４】
種別３００２としては、１つの情報は１つの種別しか保持できないわけではなく、１つ以上の複数の種別を同時に保持してよい。その場合、後述の処理における「種別が一致した場合」の条件を、「いずれかの種別に一つでも一致した場合」と読み替えることで問題なく処理可能である。
【００５５】
また、種別３００２として指定可能な種別は、例示したものに限るわけではなく、情報を入力する際、適宜任意の種別を指定できる。すなわち、仮にそれまでに一つも現れなかった種別であっても、特にその他の処理を行わずに新しい種別を追加してよい。ただし、新しい種別は適宜任意に追加してよいが、本実施例の分析処理の精度を保つためには、同じ種別の情報には、同じ種別名が指定されている必要がある。すなわち、内容が従業員の氏名などをあらわすものであれば、それらには少なくとも「従業員」といった、共通の種別が一つは含まれているべきである。
【００５６】
内容３００３としては、その情報の内容である実体を保持することができる。本実施例では、任意のｋｅｙ−ｖａｌｕｅを保持することで、情報の内容を表現しているが、特にｋｅｙ−ｖａｌｕｅ方式に限定するわけではない。
【００５７】
蓄積情報３０００の例としては、例えば１行目は『ファイル名「ｈｏｇｅ．ｅｘｅ」という名称のファイル』という情報がＩＤ０００１、種別ｆｉｌｅで登録されていることを示している。その他の行も同様である。
【００５８】
関係性情報３１００は、蓄積情報３０００の個々の情報がどのような関係にあるかを保持する。本実施例においては、例えば、ｉｄ３１０１と、ｆｒｏｍ−ｉｄ３１０２と、ｔｏ−ｉｄ３１０３と、種別３１０４を保持する。
【００５９】
ｉｄ３００１は、ノード間のパスを示すエッジが有する個々の関係性をユニークに識別するためのＩＤであり、必須ではないが、保持することで処理を簡潔に記載することが可能になる。
【００６０】
ｆｒｏｍ−ｉｄ３１０２、ｔｏ−ｉｄ３１０３、種別３１０４は、蓄積情報３０００内のどの情報がどの情報とどのように関係があるかを表すエッジが有する情報である。具体的には、ｆｒｏｍ−ｉｄ３１０２は、エッジの起点となるノードのＩＤであり、ｔｏ−ｉｄ３１０３は、そのエッジの終点となるノードのＩＤである。種別３１０４は、そのエッジが有する関係性がどのようなカテゴリのものであるかを識別するための情報である。
【００６１】
関係性情報３１００の例としては、例えば１行目のｉｄ「ｒ０００１」は、『ｉｄ「０００６」が表す情報である、ハッシュ値「ａｂｃｄｅ１２３４」のｍｗ（Ｍａｌｗａｒｅ）は、ｉｄ「０００１」が表す、名称「ｈｏｇｅ．ｅｘｅ」のファイルを生成する』ことを意味している。その他の行も同様である。
【００６２】
なお、本実施例においては、ｆｒｏｍ−ｉｄ３１０２、ｔｏ−ｉｄ３１０３として関係性に有向性を持たせているが、方向性を取り扱わず、無向性の関係性を保持してもよい。
【００６３】
図４は、情報分析システム１０００が保持する関係分析ロジック１０５２の例を示した図である。
【００６４】
関係分析ロジック１０５２は、情報源１１００から取得した情報を機械的に分析して構造化情報１０５１に保持するためのロジックを規定する情報をあらかじめ保持する。
【００６５】
具体的に本実施例においては、情報源１１００から取得した情報の種別を規定する入力情報種別４００１と、その分析ロジック４００２を保持することで実現する。
【００６６】
例えば１行目は、Ｗｅｂサイト「ｈｏｇｅ．ｓｅｃｕｒｉｔｙ．ｃｏｍ」から取得するウェブページについては、同じく１行目に記載したＸＰａｔｈを処理することで、蓄積情報３０００と、その関係性情報３１００として取り出せることを意味している。
【００６７】
図５は、情報分析システム１０００が保持する枝重み情報１０５４の例を示した図である。
【００６８】
枝重み情報１０５４は、分析依頼者１２００が指定した分析種別に応じ、どの種別の情報や、どの種別の関係性を重要視するか、あるいは軽視するかといった関係の重要性を規定するための情報である。
【００６９】
具体的に本実施例においては、分析種別５００１と、カテゴリ５００２と、ノードｏｒエッジ５００３と、重み５００４を保持する。
【００７０】
分析種別５００１は、分析依頼者１２００が本システムに対して依頼可能な分析の種別の何れかである。
【００７１】
カテゴリ５００２は、蓄積情報３０００の種別３００２（すなわちノードの種別）、あるいは、関係性情報の種別３１０４（すなわちエッジの種別）のいずれかの値、もしくは任意の関係性を意味する「（その他）」である。
【００７２】
ノードｏｒエッジ５００３は、カテゴリ５００２が種別３００２の値である場合はそのことを意味する「ノード」、逆に、種別３１０４の場合は、そのことを意味する「エッジ」という情報を保持する。なお、カテゴリ５００２が「（その他）」の場合は、エッジとノードのいずれも含みうるため「−」を保持する。
【００７３】
重み５００４は、関係性をどの程度重視するかの指標であり、１がもっとも重視する、０は当該分析においては、関係性が存在しないものとみなすことを意味する。
【００７４】
例えば「原因」を分析する際には、「通信」という種別の関係は重み１にする一方、例えば「アナリスト」という種別のノードから出ている全ての関係は重み０．１としてほとんど考慮に入れない、ことを意味している。
【００７５】
図６は、情報分析システム１０００が保持する抽出対象指定情報１０５３の例を示した図である。
【００７６】
抽出対象指定情報１０５３は、あらかじめ分析の結果として出力する対象の情報のカテゴリを規定する情報である。
【００７７】
具体的に本実施例においては、分析種別６００１と、抽出対象カテゴリ６００２を保持する。
【００７８】
例えばこの例は、「原因」種別を分析する際には、最終的な結果として「マルウェア」カテゴリか「脆弱性」カテゴリの情報が出力対象とすることを意味している。
【００７９】
図７は、情報分析システム１０００が保持する出力生成ロジック１０５５の例を示した図である。
【００８０】
出力生成ロジックは、分析結果を最終的に分析依頼者に表示する際、どのような情報を表示するかを規定するロジックである。
【００８１】
本実施例においては、情報種別７００１と、その種別の情報を表示する際に併せて表示する、付加情報内容７００２と、その種別の情報が分析結果として抽出された根拠を文章として表示するための文章化ロジック７００３を保持する。
【００８２】
例えばこの例は、「対策」種別の情報は、その対策情報のダウンロードリンクを結果に併せて表示し、文章化ロジックは標準的な処理でよいことを意味している。
【００８３】
なお、本実施例において標準的な文章化ロジックとは、『＜ｆｒｏｍ−ｉｄ３１０２の情報＞は、＜ｔｏ−ｉｄ３１０３の情報＞を＜３１０４種別＞する』のように主語、目的語、述語の順で連結する処理を表す。
【００８４】
文章化ロジックとしては、例示した「従業員」種別のように、例外的な文章化方法を指定してもよい。この例では、関係性の種別が「通信履歴」、あるいは「保持」の場合は＜ｆｒｏｍ−ｉｄ３１０２の情報＞の後に“の端末”という文言を追加することを表している。
【００８５】
以降、図８から図９を用いて、本解析システムの基本的な処理フローを例示し、さらに図１０から図１３を用いて、構造化情報がどのようなに処理されるかを説明する。
【００８６】
図８は、図３に示した構造化情報を形成する処理を表すフローの例である。
【００８７】
まず処理８００１において、情報取得部１００１が、情報源１１００から情報を取得する。その際、情報取得部１００１は自身がどのような種別の情報を取得したかを記憶しておく。
【００８８】
なお、情報の種別とは、関係分析ロジック１０５２の入力情報種別４００１が規定するものの何れかである。
【００８９】
また、情報源１１００が手入力だった場合は、以降の処理に進まず図１の説明において説明したように、直接構造化情報１０５１を編集してもよい。
【００９０】
次に処理８００２において、関係情報生成部１００２は、処理８００１において取得され情報を、関係性ロジック１０５２の分析ロジック４００２に従って分析する。
【００９１】
最後に処理８００３において、関係情報生成部１００２は、処理８００２の分析結果を、蓄積情報３０００と、関係性情報３１００として保存する。
【００９２】
図１０に、そのようにして形成した構造化情報１０５１の一例をグラフ構造として表現したものを示す。
【００９３】
例えば１０００１、１０００３は蓄積情報３０００の例のそれぞれ１行目のｉｄ「０００１」の情報と、ｉｄ「０００６」の情報を表し、また、その２つのノード間のエッジである１０００２は、関係性情報３１００の例の１行目のｉｄ「ｒ０００１」の関係を表している。その他のノードと、エッジも同様である。また、１０００４として表したような破線で囲んだグレーの領域は、さらに同様のグラフ構造が連結していることを示している。
【００９４】
図９は、図８に示す処理によって形成された構造化情報１０５１を用いて、分析依頼者１２００から受け取った分析条件と分析種別に従って情報を分析する処理のフローの例を示している。
【００９５】
まず処理９００１において、情報分析システム１０００は、分析受付・ 応答インタフェース１００３を介して、分析依頼者１２００から分析対象である情報と、分析種別を受け取る。
【００９６】
本実施例では、分析対象である情報とは具体的には文字列であって、例えば、何らかのセキュリティ機器からアラートが挙がった際のアラートに記載されたホスト名や、ＩＰアドレスであってもよいし、不審なファイルのハッシュ値でもよい。
【００９７】
また、分析種別とは、分析依頼者１２００が何を知りたいのかを自ら指定するものであって、枝重み情報１０５４の分析種別５００１のいずれかと一致する必要がある。
【００９８】
次に、処理９００２において、起点情報検索部１００４は、処理９００１で受け取った分析対象の文字列とマッチする内容を保持する蓄積情報３０００を検索し、結果を起点情報として返す。
【００９９】
マッチするとは、本実施例では文字列が一致、もしくは部分一致することである。複数マッチした場合は、それら全てを返す。本実施例では、分析対象が通信先の一つにマッチした場合の例を、図１１の１１００２の二重線のノードとして表している。
【０１００】
次に、処理９００３において、枝重要度決定部１００５は、処理９００１で取得した分析種別と、枝重み情報１０５４を照らし合わせ、各枝に重要度を設定する。
【０１０１】
本実施例では、分析種別が例えば「原因」であった場合について、重要度が０．１以下の関係性を、関係性がほとんど存在しないものとして、図１１の１１００１のように破線の矢印で表している。
【０１０２】
次に、処理９００４において、分類・可達性分析部１００６は、処理９００３において設定した枝の重みを考慮した上で、グラフをクラスタリングする。グラフ情報のクラスタリング手法は既知の手法が多数あるが、本実施例において非常に好適な手法の一つは、コミュニティ分類と呼ばれる手法である。
【０１０３】
コミュニティ分類とは具体的には、グラフ構造をグラフラプラシアンと（あるいはラプラシアン行列とも）呼ばれる行列形式で表現し、そのゼロ固有値（もしくはゼロに近い固有値）と、その固有値に対応する固有ベクトルを計算して求める。最後にグラフ構造からグラフラプラシアンへの写像の逆写像を用いて、固有ベクトルをグラフのノード集合に引き戻すことで、グラフをいくつかの部分グラフに分割する方法である。この分割結果として取得される各部分グラフは、全体のグラフの中でそれぞれ、枝の重みが大きく、さらにそのような枝が密に張られているような部分が優先的に残るように上手く分割されたものであることが知られている。
【０１０４】
本処理においては、分類・可達性分析部１００６は、分類結果の部分グラフの中で、起点情報であるノードを含む部分グラフを抽出し、処理結果として返す。図１１の１１００３に示したような二重線によって、本実施例においてコミュニティ分類を行った結果としての、全体グラフの分割線を示す。すなわち、本処理の結果は、部分グラフの中でも起点情報である１１００２を含むものであり、すなわち図１２に示すようなグラフが結果として返される。なお、起点情報が複数存在する場合は、各起点情報についてそれぞれ部分グラフを返す。
【０１０５】
次に、処理９００５において、結合性分析部１００７は、処理９００４の結果の部分グラフについて（結果が複数存在する場合はそれぞれについて）、抽出対象指定情報１０５３を参照し、分析種別６００１が処理９０００１で取得したものと一致する行の、抽出対象カテゴリ６００２で指定された種別に一致する蓄積情報３０００（すなわちノード）を全て検索する。この処理を行うことにより、起点情報に対する終点となる抽出対象情報がわかる。また、その抽出対象情報は、処理９００１で入力された分析種別に対応するカテゴリに属する抽出対象情報のみが検索され、最終的に出力生成部１００８により出力される。本実施例では、図１２の１２００１のようにグレーで塗り潰した二つのｍｗ種別のノードがその結果の例である。
【０１０６】
ここまでの処理で、分析対象情報を入力として、関連の強いとみなせる情報の一覧を取得することができる。本実施例においては、そのような情報の根拠までを分析することが特徴であり、それは具体的には、次に示す処理で行うものである。
【０１０７】
さらに、処理９００５において、結合性分析部１００７は、起点情報（図１２内の二十枠のノード）から、抽出対象情報（図１２内のグレーで塗りつぶしたノード）それぞれに対して、エッジの向きを無視して、独立パスが何本存在するかを計算する。
【０１０８】
ここで、あるノードから別のノードへの二つのパスが独立であるとは、二つのパスが途中でいずれのエッジも共有することがないことを意味する。
【０１０９】
例えば、図１３（１３−ａ）に示したグラフにおいては、ノードａからノードｄへのパスはエッジｂ−ｃが常に共通するため、独立パスは１本のみである。
【０１１０】
一方で、図１３（１３−ｂ）に示したグラフにおいては、共通するパスはなく、ノードａからノードｇへの独立パスはａ−ｂ−ｄ−ｇ、ａ−ｄ−ｅ−ｇ、ａ−ｆ−ｇの３本である。
【０１１１】
本実施例においては、この独立パスの本数は、何種類の互いに依存のない周辺情報が、対象情報を関係のある情報として指し示しているか、という意味であり、すなわちいわば状況証拠の数であると捉えることができる。
【０１１２】
逆に、図１３（１３−ａ）のように、パス自体は多くても、独立パスが少なければ、結局は何らかの少数の情報のみに依存した関係性であり、そこが誤りであった場合には、一度に関係性が切れてしまうものである。したがって、上記のような共通するパスが少ないあるいは上記のような独立パスが多いほど根拠が揃うため情報を多面的に捉えることができ、有用性の高いより強い状況証拠となる。
【０１１３】
すなわちまとめると、処理９００５は、起点情報から各抽出対象情報への独立パスの本数を計算し、独立パスの多い対象情報ノードをより根拠のそろった情報として、また、各独立パスを状況証拠として返す処理である。
【０１１４】
本実施例では、図１３（１３−ｃ）に示すような、独立パスが１本のｍｗ種別情報と、図１３（１３−ｄ）に示したような独立パスが２本のｍｗ種別情報が存在するため、後者がより根拠のそろった情報として返される。また、処理９００５のさらに効果的な処理としては、独立パスであって、さらに各パスを構成するエッジの種別が異なるものであればさらに強い状況証拠として判断してもよい。
【０１１５】
最後に、処理９００６において、出力生成部１００８は、出力生成ロジック１０５５を参照し、応答として返す情報種別７００１に応じて、付加情報表示内容７００２で指定された付加的な情報を生成する。また、グラフ構造を基に抽出根拠を文章化する文章化ロジック７００３を用いて、根拠を文章化して分析依頼者１２００に通知することも可能である。
【０１１６】
本実施例の出力結果の表示例を図１４を用いて示す。１４００１は、分析依頼者１２００が入力した分析対象である。図１４では、ファイル「ｈｏｇｅ．ｅｘｅ」に記述されている文字列「ｅｘａｍｐｌｅ．ｃｏｍ」を分析対象としていることを示している。１４００２は、分析依頼者１２００が入力した分析種別である。図１４では、分析種別として「原因」が入力されたことを示している。１４００３は、分析結果として処理９００５の結果返された抽出対象情報の総数である。図１４では、２件の分析結果（図１３の１３−ｃ、１３−ｄ）が得られたことを示している。
【０１１７】
１４００４は、分析結果をどのような順で表示するかを指定する機能である。本実施例によれば、独立パスが多いものほど重要であるため、そのような抽出対象情報から優先的に表示することが望ましいが、例えば情報が登録された時系列などの変更させることも可能である。図１４では、状況証拠の多い順となる降順で分析結果が表示されることを示している。１４００５は、それ以下に表示される情報が、ＭＷ０００７の情報であることを示す。１４００６は、起点情報となる通信先００１２と、抽出対象情報となるＭＷ０００７との間の独立パスを図示したものである。本情報により、分析依頼者１２００はどのような関係性に基づいて、当該情報が抽出されたのかを理解することができる。また、例えば、１４００６内の各情報を選択することで、その情報種別に応じた付加情報を動的に生成して表示するなどの付加的な動作も可能である。
【０１１８】
１４００７は、当該情報が抽出された根拠を示しており、起点情報が選ばれた理由と、抽出対象情報の中でもっとも根拠が強い理由を示している。具体的な根拠については、１４００８と、１４００９に示すように、グラフ構造を文章化することでそのまま説明可能である。例えば、状況１として、ＭＷ０００７は通信先００１２に通信することを根拠として示している。１４０１０は、抽出対象情報に付加的に追加して提示する情報であって、ＭＷ種別の場合はアンチウィルスソフトで検知可能か、など、通常必要となる情報があるならばあわせて提示することが可能である。１４０１１は、表示する分析結果を切り替えるためのページネータである。
【０１１９】
以上に例示した構成にすることで、上述した本願の効果を得ることが可能となる。
【符号の説明】
【０１２０】
１０００  情報分析システム
１００１  情報取得部
１００２  関係情報生成部
１００３  分析受付・応答インタフェース
１００４  起点情報検索部
１００５  枝重要度決定部
１００６  分類・可達性分析部
１００７  結合性分析部
１００８  出力生成部
１０５１  構造化情報
１０５２  関係分析ロジック
１０５３  抽出対象指定情報
１０５４  枝重み情報
１０５５  出力生成ロジック
１１００  情報源
１２００  分析依頼者
２０００  各構成要素のハードウェア構成要素。
【図１】
0006523799.tif 000002
【図２】
0006523799.tif 000003
【図３】
0006523799.tif 000004
【図４】
0006523799.tif 000005
【図５】
0006523799.tif 000006
【図６】
0006523799.tif 000007
【図７】
0006523799.tif 000008
【図８】
0006523799.tif 000009
【図９】
0006523799.tif 000010
【図１０】
0006523799.tif 000011
【図１１】
0006523799.tif 000012
【図１２】
0006523799.tif 000013
【図１３】
0006523799.tif 000014
【図１４】
0006523799.tif 000015