(57)【要約】  情報処理装置（２０００）は、出力対象のイベントグラフ（１０）を取得し、取得した出力対象のイベントグラフ（１０）の中から、所定基準を満たすサブグラフを特定する。イベントグラフ（１０）は、プログラムの活動に関連するイベントにおける活動内容をエッジ（１４）として表し、なおかつそのイベントの主体と客体それぞれをノード（１２）として表す。情報処理装置（２０００）は、特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を第１態様以外の態様として、イベントグラフ（１０）を出力する。第１態様は、ノード（１２）及びエッジ（１４）の少なくとも一方の数を、特定されたグラフに含まれる数よりも減らした態様である。
2020100284.tif 000002
【特許請求の範囲】
【請求項１】
出力対象のイベントグラフを取得し、取得した前記出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定部と、
前記特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を前記第１態様以外の態様として、前記イベントグラフを出力する出力部と、を有し、
前記イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表し、
前記第１態様は、ノード及びエッジの少なくとも一方の数を、前記特定されたグラフに含まれる数よりも減らした態様である、情報処理装置。
【請求項２】
前記所定基準は、正常な状態で発生するイベント列を表すサブグラフによって満たされる基準である、請求項１に記載の情報処理装置。
【請求項３】
前記所定基準は、１つのプロセスが同じ拡張子を持つ複数のファイルにアクセスしたことを表すという基準である、請求項２に記載の情報処理装置。
【請求項４】
前記所定基準は、同じサブネットに属する複数の装置から１つのプロセスに対する通信を表すという基準である、請求項２に記載の情報処理装置。
【請求項５】
前記所定基準は、１つのプロセスが第２所定基準を満たす複数のファイル又はディレクトリにアクセスしたことを表すという基準である、請求項２に記載の情報処理装置。
【請求項６】
前記第２所定基準は、所定のディレクトリの配下にあるという基準、又は所定のリストに示されているという基準である、請求項５に記載の情報処理装置。
【請求項７】
前記特定部は、入力操作により指定された前記イベントの主体又は客体を表すノードを含むイベント列を表すイベントグラフを取得する、請求項１乃至６いずれか一項に記載の情報処理装置。
【請求項８】
コンピュータによって実行される制御方法であって、
出力対象のイベントグラフを取得し、取得した前記出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定ステップと、
前記特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を前記第１態様以外の態様として、前記イベントグラフを出力する出力ステップと、を有し、
前記イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表し、
前記第１態様は、ノード及びエッジの少なくとも一方の数を、前記特定されたグラフに含まれる数よりも減らした態様である、制御方法。
【請求項９】
前記所定基準は、正常な状態で発生するイベント列を表すサブグラフによって満たされる基準である、請求項８に記載の制御方法。
【請求項１０】
前記所定基準は、１つのプロセスが同じ拡張子を持つ複数のファイルにアクセスしたことを表すという基準である、請求項９に記載の制御方法。
【請求項１１】
前記所定基準は、同じサブネットに属する複数の装置から１つのプロセスに対する通信を表すという基準である、請求項９に記載の制御方法。
【請求項１２】
前記所定基準は、１つのプロセスが第２所定基準を満たす複数のファイル又はディレクトリにアクセスしたことを表すという基準である、請求項９に記載の制御方法。
【請求項１３】
前記第２所定基準は、所定のディレクトリの配下にあるという基準、又は所定のリストに示されているという基準である、請求項１２に記載の制御方法。
【請求項１４】
前記特定ステップにおいて、入力操作により指定された前記イベントの主体又は客体を表すノードを含むイベント列を表すイベントグラフを取得する、請求項８乃至１３いずれか一項に記載の制御方法。
【請求項１５】
請求項８乃至１４いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムの活動を把握する技術に関する。
【背景技術】
【０００２】
コンピュータ上で動作するプログラムの活動を把握するために、プログラムの活動をグラフで表現する技術が開発されている。ここでいうグラフとは、ノードの集合及びノード間を接続するエッジの集合で構成されるデータ構造を意味する。【０００３】
プログラムの活動をグラフ化する技術を開示している先行技術文献には、例えば特許文献１がある。特許文献１は、コンピューティングシステムに対する攻撃を検出するために、不審イベントをエッジとし、なおかつその不審イベントの主体及び客体をそれぞれノードとするイベント相関グラフを生成する技術を開示している。より具体的には、不審イベントの属性に基づいて不審性スコアが定義され、イベント相関グラフを構成するエッジ及びノードの不審性スコアから攻撃スコアを算出することにより、攻撃の検知が行われる。ここで、攻撃スコアの算出方法の一つとして、イベント相関グラフのサイズに基づいて算出する方法が開示されている。さらに特許文献１には、生成したイベント相関グラフを管理者に提示することも開示されている。【０００４】
また、グラフの表示に関する技術を開示している先行技術文献として、特許文献２がある。特許文献２は、ユーザ間を連結して表すソーシャルグラフにおいて、各ユーザの発言等に基づいてグラフをセグメント化して表示する技術を開示している。さらに、各セグメントが他のユーザに与える影響力を表すセグメント影響力を算出し、閾値以上のセグメント影響力を持つセグメントのグラフのみを表示するという技術も開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１６−５２８６５６号公報
【特許文献２】特開２０１５−１６４００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
システム上では、様々なプログラムが様々な活動を行いうる。そのため、プログラムの活動の全てをグラフに表すと、ノードやエッジの数が多くなるため、グラフの出力に多くの計算機資源を消費する。【０００７】
特許文献１には、イベント相関グラフのサイズに基づいて攻撃スコアを算出する際、攻撃スコアを算出する前に、不審性スコアが低いノードやエッジをイベント相関グラフから削除してもよいことが開示されている。しかしながら、不審性スコア以外の指標に基づいてノードやエッジを削除することは開示されていない。また、管理者に提示するイベント相関グラフについては、このように一部のノードやエッジを削除することが開示されていない。【０００８】
特許文献２は、グラフ化の対象がプログラムの活動ではない。そのため、特許文献２の技術を利用しても、プログラムの活動を表すグラフの出力に要する計算機資源を削減することはできない。【０００９】
本発明は上記の課題に鑑みてなされたものであり、その目的の一つは、プログラムの活動を表すグラフの出力に要する計算機資源量を削減する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、１）出力対象のイベントグラフを取得し、取得した出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定部と、２）特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を第１態様以外の態様として、イベントグラフを出力する出力部と、を有する。
イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表す。
第１態様は、ノード及びエッジの少なくとも一方の数を、特定されたグラフに含まれる数よりも減らした態様である。【００１１】
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、１）出力対象のイベントグラフを取得し、取得した出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定ステップと、２）特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を第１態様以外の態様として、イベントグラフを出力する出力ステップと、を有する。
イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表す。
第１態様は、ノード及びエッジの少なくとも一方の数を、特定されたグラフに含まれる数よりも減らした態様である。【００１２】
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、プログラムの活動を表すグラフの出力に要する計算機資源量を削減する技術が提供される。
【図面の簡単な説明】
【００１４】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
【図１】実施形態１の情報処理装置の動作の概要を例示する図である。
【図２】実施形態１の情報処理装置の構成を例示する図である。
【図３】情報処理装置を実現するための計算機を例示する図である。
【図４】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図５】イベント情報をテーブル形式で例示する図である。
【図６】互いに異なる対象装置について生成されるグラフを連結することで１つのイベントグラフを生成する方法を例示する図である。
【図７】通信相手の装置がノードとして表されたイベントグラフを例示する図である。
【図８】例１の所定基準を満たすサブグラフを含むイベントグラフを例示する図である。
【図９】例２の所定基準を満たすサブグラフを含むイベントグラフを例示する図である。
【図１０】例３の所定基準を満たすサブグラフを含むイベントグラフを例示する図である。
【図１１】１つのプロセスが所定のディレクトリ配下にある複数のファイルにアクセスしたことを表すサブグラフを含むイベントグラフを例示する図である。
【図１２】１つのプロセスが所定のリストに示されている複数のファイルにアクセスしたことを表すサブグラフを含むイベントグラフを例示する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１６】
［実施形態１］
＜概要＞
図１は、実施形態１の情報処理装置２０００の動作の概要を例示する図である。図１は、情報処理装置２０００の動作についての理解を容易にするための概念的な説明を表す図であり、情報処理装置２０００の動作を具体的に限定するものではない。
【００１７】
情報処理装置２０００は、出力対象のイベントグラフ１０を取得し、出力する。イベントグラフ１０は、ノード１２の集合及びノード１２間を接続するエッジ１４の集合で構成されるデータ構造である。イベントグラフ１０では、エッジ１４及びそのエッジ１４によって接続される２つのノード１２により、１つのイベントが表される。
【００１８】
イベントとは、プロセス（実行中のプログラム）が何らかの客体に対して行った活動を表す。エッジ１４は、イベントにおけるプロセスの活動内容を表す。そして、エッジ１４によって接続される２つのノード１２がそれぞれ、イベントの主体と客体を表す。イベントの主体はプロセスである。イベントの客体は、プロセスやファイルなどである。例えば或るプロセスが発生させるイベントは、他のプロセスの起動、他のプロセスとの通信、又はファイルへのアクセスなどである。
【００１９】
ここで、図１では、向きを表す矢印をエッジ１４として出力することで、イベントの流れを表している。具体的には、エッジ１４の始点と接続されているノード１２がイベントの主体を表し、エッジ１４の終点と接続されているノード１２がイベントの客体を表す。そして、エッジ１４が表す方向に向かって順にノード１２を見ていくことで、イベントの時系列を把握することができる。以下、１つ以上のイベントを時系列で並べたものを、イベント列と呼ぶ。
【００２０】
なお、エッジ１４の出力態様は、必ずしも向きを表すものに限定されず、直線などの向きを表さないものであってもよい。エッジ１４が向きを表さない態様で出力される場合、例えば、「イベントグラフ１０において、イベントの流れは左から右へ向かう向きで表される」といったルールを定めておき、そのルールに従ってイベントグラフ１０を生成するようにする。
【００２１】
イベントグラフ１０は、例えば、対象装置の監視を行うユーザによって利用される。ユーザは、イベントグラフ１０を閲覧することにより、対象装置の状況を把握する。例えばユーザは、イベントグラフ１０を閲覧することにより、対象装置において異常な状態を表すイベントが発生していないかどうかを確認する。異常な状態を表すイベントとは、例えば、マルウエアが介在していると考えられるイベントなどである。ただし、ここでいう「異常」は、セキュリティ上の異常には限定されない。例えば、プログラムのバグによってプロセスが想定外の動作を行っているなどといった異常も含まれる。
【００２２】
ここで、イベントグラフ１０を閲覧するユーザにとって、出力されるイベントグラフ１０を構成する各要素の重要さは、その閲覧の目的などによって異なる可能性がある。例えば、対象装置に異常がないかどうかを把握したいユーザにとっては、異常な活動によって発生するイベント列を表す部分の方が、通常の活動によって発生するイベント列を表す部分よりも重要であると考えられる。
【００２３】
そこで情報処理装置２０００は、イベントグラフ１０を構成するサブグラフの態様を、所定の基準に基づいて決定する。具体的には、情報処理装置２０００は、イベントグラフ１０を構成する１つ以上のサブグラフの中から、所定基準を満たすサブグラフ（以下、特定サブグラフ）を特定する。情報処理装置２０００は、特定サブグラフについては第１態様で出力し、その他の部分については第１態様以外の態様で出力することで、イベントグラフ１０を出力する。第１態様は、ノード及びエッジの少なくとも一方の数を、特定サブグラフに含まれる数よりも減らした態様である。以下、第１態様による出力を、「集約出力」とも表記する。
【００２４】
例えば図１において、出力対象のイベントグラフ１０は、App1 というアプリケーションのプロセスが、２つのテキストファイルと１つの画像ファイルにアクセスしていることを表している。そして、所定基準として、「１つのプロセスから同じ拡張子を持つ複数のファイルにアクセスしたことを表す」が定められている。
【００２５】
そこで情報処理装置２０００は、所定基準を満たすサブグラフとして、App1 から２つのテキストファイル（同じ拡張子 txt を持つファイル）にアクセスしたことを表すサブグラフを特定する。そして情報処理装置２０００は、このサブグラフを集約して出力する。具体的には、情報処理装置２０００は、アクセスされた２つのテキストファイルそれぞれを表すノード１２を、「***.txt」というテキストファイル全般を表す１つのノード１２に変換して出力している。
【００２６】
＜作用効果＞
このように、所定基準を満たすサブグラフを集約出力することによれば、出力対象のイベントグラフ１０に多くのノード１２やエッジ１４が含まれていたとしても、その一部が適切に集約されることにより、ユーザにとってイベントグラフ１０が見やすくなる。よって、情報処理装置２０００によれば、ユーザにとってイベントグラフ１０の利便性が向上するという効果がある。
【００２７】
特に、正常な状態（通常の状態）で発生するイベント列を表すサブグラフが所定基準を満たすように所定基準を定めれば、正常な状態についての情報をイベントグラフ１０から減らすことができる。その結果、ユーザの注意が、異常な状態で発生するイベント列に向きやすくなるため、異常な状態で発生するイベント列がユーザに見落とされてしまうことを防ぐことができる。よって、対象装置の安全性を向上させることができる。
【００２８】
さらに、所定基準を満たすサブグラフを集約出力することにより、上述のようにユーザにとってのイベントグラフ１０の利便性を向上しつつ、イベントグラフ１０を出力するために要する計算機資源を削減することができる。例えば、イベントグラフ１０に含まれるノード１２やエッジ１４の数が減るため、イベントグラフ１０を表す画面データがより単純なものとなる。そのため、イベントグラフ１０を表す画面データの生成に必要なプロセッサ資源の削減や、その画面データを表示するために必要なディスプレイ装置の表示領域の削減などを実現できる。また、イベントグラフ１０に含まれるノード１２やエッジ１４の数が減るため、イベントグラフ１０を表す情報のデータサイズが小さくなる。そのため、イベントグラフ１０を表す情報を記憶させておくために必要な記憶領域を削減することができる。また、情報処理装置２０００が他の装置へイベントグラフ１０を表す情報を送信する際、その送信に必要なネットワーク帯域を削減できる。
【００２９】
以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００３０】
＜情報処理装置２０００の機能構成の例＞
図２は、実施形態１の情報処理装置２０００の構成を例示する図である。情報処理装置２０００は、特定部２０２０及び出力部２０４０を有する。特定部２０２０は、出力対象のイベントグラフ１０から、所定基準を満たすサブグラフを特定する。出力部２０４０は、イベントグラフ１０を出力する。イベントグラフ１０のうち、所定基準を満たすサブグラフは第１の態様で出力され、それ以外の部分は第１の態様以外の態様で出力される。
【００３１】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００３２】
図３は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、Personal Computer（PC）、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００３３】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。プロセッサ１０４０は、CPU（Central Processing Unit）、GPU（Graphics Processing Unit）、又は FPGA（Field-Programmable Gate Array）などのプロセッサである。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現される主記憶装置である。ストレージデバイス１０８０は、ハードディスクドライブ、SSD（Solid State Drive）、メモリカード、又は ROM（Read Only Memory）などを用いて実現される補助記憶装置である。ただし、ストレージデバイス１０８０は、RAM など、主記憶装置を構成するハードウエアと同様のハードウエアで構成されてもよい。
【００３４】
入出力インタフェース１１００は、計算機１０００と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。この通信網は、例えば LAN（Local Area Network）や WAN（Wide Area Network）である。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００３５】
ストレージデバイス１０８０は、情報処理装置２０００の機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールをメモリ１０６０に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【００３６】
＜対象装置について＞
対象装置は、PC、サーバマシン、タブレット端末、又はスマートフォンなどといった任意のコンピュータである。また、対象装置は物理マシンには限定されず、仮想マシンであってもよい。
【００３７】
対象装置は、１つであってもよいし、複数であってもよい。例えば情報処理装置２０００は、複数の対象装置それぞれについてイベントグラフ１０を生成する。ただし後述するように、複数の対象装置が互いに通信している場合、各対象装置について生成されるイベントグラフ１０を連結することにより、複数の対象装置について１つのイベントグラフ１０を生成してもよい。このように複数の対象装置について生成された１つのイベントグラフ１０は、複数の対象装置から成るコンピュータシステム（以下、対象システム）について生成されたイベントグラフ１０として見ることもできる。
【００３８】
＜処理の流れ＞
図４は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。特定部２０２０は、出力対象のイベントグラフ１０を取得する（Ｓ１０２）。特定部２０２０は、出力対象のイベントグラフ１０から、所定基準を満たすサブグラフを特定する（Ｓ１０４）。出力部２０４０は、出力対象のイベントグラフ１０を出力する（Ｓ１０６）。この際、特定されたサブグラフは第1態様で出力され、その他の部分は第1態様以外の態様で出力される。
【００３９】
＜イベントについて＞
前述したように、イベントとは、プロセスが何らかの客体に対して行った活動である。或るプロセスが他のプロセスを客体として活動する場合、これらのプロセスは互いに同一の OS（Operating System）上で動作するものであってもよいし、互いに異なる OS 上で動作するものであってもよい。後者の例としては、例えば、ソケットインタフェースを利用することで、或るプロセスが他の OS 上で動作する別のプロセスと通信を行うことが考えられる。
【００４０】
例えばイベントは、主体、客体、活動内容、及び発生時刻という４つの要素を表す情報によって識別される。そこで例えば、イベント情報は、主体を表す主体情報、客体を表す客体情報、活動の内容を表す内容情報、及び発生時刻の組み合わせを示す。
【００４１】
主体情報は、例えば、そのイベントを発生させたプロセスを識別する情報である。以下、プロセスを識別する情報をプロセス識別情報と呼ぶ。プロセス識別情報は、例えば、プロセスの名称を示す。その他にも例えば、プロセス識別情報は、プロセス ID（Identifier）、プロセスに対応するプログラムの実行ファイルの名称やパス、実行ファイルのハッシュ値やデジタル署名、又は実行ファイルで実現されるアプリケーションの名称などである。なお、プロセス識別情報は、実行ファイルのパスとプロセスＩＤの組み合わせなど、複数の識別子の組み合わせであってもよい。
【００４２】
客体情報は、例えば、その客体の種別及び識別情報である。客体の種別は、例えば、プロセス、ファイル、又はソケットなどである。客体がプロセスである場合、客体情報にはそのプロセスのプロセス識別情報が含まれる。
【００４３】
客体がファイルである場合、客体情報には、そのファイルを識別する情報（以下、ファイル識別情報）が含まれる。ファイル識別情報は、例えばそのファイルの名称やパスなどである。また、客体がファイルである場合、客体情報は、そのファイルのハッシュ値や、ファイルシステムの識別情報とそのファイルシステム上でそのファイルを構成するディスクブロックの識別情報（inode 番号やオブジェクト ID）との組み合わせなどであってもよい。
【００４４】
客体がソケットである場合、例えば客体情報には、ソケットに割り当てられた識別子が含まれる。
【００４５】
活動内容を表す情報（以下、内容情報）は、例えば、種々ある活動内容に予め割り当てておく識別子である。例えば、「プロセスを起動する」、「プロセスを停止する」、「ファイルをオープンする」、「ファイルからデータを読み込む」、「ファイルにデータを書き込む」、「ソケットをオープンする」、「ソケットからデータを読み込む」、又は「ソケットにデータを書き込む」などといった活動の内容に、互いに異なる識別子を割り当てておく。なお、ソケットに対するアクセスは、そのソケットに対応づけられた他の装置へのアクセスを意味する。
【００４６】
イベントグラフ１０の生成には、対象装置で発生した各イベントを表す情報が必要である。以下、この情報をイベント情報と呼ぶ。例えばイベント情報は、対象装置で発生した各イベントについて、主体情報、客体情報、内容情報、及び発生時刻の組み合わせを示す。
【００４７】
図５は、イベント情報をテーブル形式で例示する図である。以下、図５のテーブルをテーブル２００と呼ぶ。テーブル２００は、主体情報２０２、客体情報２０４、内容情報２０６、及び発生時刻２０７を含む。主体情報２０２は、プロセス名２０８及びパス２１０が含まれている。客体情報２０４には、種別２１２及び識別情報２１４が含まれている。発生時刻２０７は、イベントが発生した時刻を示す。
【００４８】
例えばイベント情報は、対象装置で発生した各イベントについての情報をログに記録しておくことで生成することができる。発生したイベントについての情報をログに記録しておく技術には、既存の技術を利用することができる。
【００４９】
＜イベントグラフ１０の生成について＞
イベントグラフ１０は、前述したイベント情報に基づいて生成される。イベントグラフ１０の生成は、情報処理装置２０００によって行われてもよいし、情報処理装置２０００以外の装置によって行われてもよい。以下では説明をわかりやすくするため、イベントグラフ１０が情報処理装置２０００によって生成されるものと仮定する。
【００５０】
イベントグラフ１０におけるエッジ１４及びノード１２は、イベント情報によって定められる。具体的には、内容情報がエッジ１４を定め、主体情報と客体情報それぞれがエッジ１４によって接続される２つのノード１２を定める。ここで、エッジ及びその両端のノードを定める情報を用いてグラフを生成する技術には、既存の技術を利用することができる。
【００５１】
基本的には、或るイベントにおける客体と他のイベントにおける主体が一致する場合、前者と後者を同じノード１２で表すことにより、複数のイベントについての情報が連結されたイベントグラフ１０が生成されていく。
【００５２】
ただし、イベントグラフ１０は、発生時刻を考慮して生成されることが好適である。例えば、或るイベントの客体が他のイベントの主体となる場合、前者のイベントの発生時刻は、後者のイベントの発生時刻よりも早くなる。そこで情報処理装置２０００は、このようにイベント間の発生時刻の順序を考慮して生成されるようにする。
【００５３】
また、或るイベントの客体と他のイベントの主体が同一であったとしても、前者のイベントと後者のイベントが、連結されるべき一連のイベントとは言えないことがある。具体的には、前者のイベントの発生時刻と後者のイベントの発生時刻が大きく異なる場合、これらのイベントは一連のイベントではなく独立して発生したイベントであると考えられ、これらのイベントを連結することは好ましくないと考えられる。
【００５４】
そこで例えば、連結するイベント間について、発生時刻の閾値を定めておく。そして、情報処理装置２０００は、或るイベント情報によって示される客体と他のイベント情報によって示されるイベントの主体が一致する場合、後者のイベント情報によって示される発生時刻と前者のイベント情報によって示される発生時刻との差分が、上記閾値以下であるか否かを判定する。
【００５５】
差分が上記閾値以下である場合、情報処理装置２０００は、前者のイベントの客体を示すノード１２と、後者のイベントの主体を示すノード１２とを同一のノード１２のものとすることで、これらのイベントを連結する。一方、差分が上記閾値より大きい場合、情報処理装置２０００は、前者のイベントの客体を表すノード１２と、後者のイベントの主体を表すノード１２とを互いに異なるノード１２とすることで、これらのイベントを連結しない。
【００５６】
なお、生成された全てのイベントグラフ１０が出力対象とされる必要はない。例えば、イベントグラフ１０の生成は定期的に行われ、イベントグラフ１０の出力はユーザによる入力操作が行われた時のみ行われるようにしてもよい。この場合、定期的に生成されるイベントグラフ１０は、例えば、前述したスコア情報の生成に利用される。スコア情報の生成方法については後述する。
【００５７】
＜＜対象装置が複数存在するケースについて＞＞
対象装置が複数存在する場合、例えば情報処理装置２０００は、対象装置ごとにイベントグラフ１０を生成する。ただし前述したように、互いに通信している複数の対象装置については、これらの対象装置についてのイベントグラフ１０を連結することが好適である。
【００５８】
複数の対象装置それぞれについて生成されたイベントグラフ１０は、例えば、対象装置同士の通信に関するイベントを表すノード１２を介して連結される。対象装置同士の通信は、例えばソケットインタフェースを利用して行われる。例えば、対象装置から他の対象装置に対するデータの送信は、ソケットに対する書き込み動作などで実現される。一方、他の対象装置から送信されたデータの受信は、ソケットに対する読み込み動作などで実現される。
【００５９】
そこで情報処理装置２０００は、例えば、互いに異なる対象装置において行われたソケットを客体とするイベントについてマッチングを行うことで、互いに異なる対象装置について生成されたイベントグラフ１０を連結する。図６は、互いに異なる対象装置について生成されるグラフを連結することで１つのイベントグラフ１０を生成する方法を例示する図である。
【００６０】
図６の上段では、それぞれ異なる対象装置について生成されたイベントグラフ１０−１とイベントグラフ１０−２とが連結されていない。イベントグラフ１０−１では、ノード１２−１によって表されるプロセスｐ１が、ノード１２−２によって表されるソケットｓ１に対し、データの書き込みを行っている。イベントグラフ１０−２では、ノード１２−３によって表されるプロセスｐ２が、ノード１２−４によって表されるソケットｓ２に対し、データの読み込みを行っている。
【００６１】
ここで、ソケットｓ１とソケットｓ２が通信可能に接続されている（両者の間でコネクションが確立されている）とする。そうすると、プロセスｐ１は、ソケットｓ１及びｓ２を介し、プロセスｐ２に対してデータを送信していることになる。
【００６２】
そこで、情報処理装置２０００は、上述したソケットｓ１とｓ２とを連結することで、イベントグラフ１０−１とイベントグラフ１０−２とを連結し、１つのイベントグラフ１０を生成する（図６の下段参照）。
【００６３】
なお、どのソケットとどのソケットが通信可能に接続されているのかは、例えば、各ソケットが持つネットワークに関する情報（通信相手のポート番号やＩＰアドレス）とをマッチングすることで特定することができる。
【００６４】
＜＜通信相手の装置をノードとして表すケース＞＞
対象装置が他の装置と通信する場合において、通信相手の装置を１つのノードとして表すようにしてもよい。通信相手の装置は、他の対象装置であってもよいし、対象装置以外の装置であってもよい。例えば対象装置がサーバとして機能する装置であれば、そのサーバを利用するクライアントが通信相手の装置となる。また、対象装置がクライアントして機能する装置であれば、対象装置がアクセスするサーバが通信相手の装置となる。
【００６５】
図７は、通信相手の装置がノードとして表されたイベントグラフ１０を例示する図である。図７は、191.168.0.4 という IP アドレスを持つ装置から対象装置の App1 というアプリケーションに対してデータが送信され、そのデータの受信を受けて App1 が abc.html を読み出したことを表している。
【００６６】
ここで、図７に示したように、通信相手の装置からのアクセスを受けて対象装置上のプロセスの活動が始まるケースもある。この場合、プロセスの実際の活動としては、「プロセスが、通信相手の装置から受信したデータをソケットから読み出す」という動作となる。すなわち、プロセスが主体であり、通信相手の装置から受信したデータを管理しているソケットが客体であり、なおかつ read が活動内容であるイベントとなる。しかしながら、図７で示した通り、グラフとしては、通信相手の装置からプロセスへのデータ送信というイベントとして表した方が自然で分かりやすいと考えられる。
【００６７】
そこで、「プロセスが、他の装置から受信したデータをソケットから読み出す」というイベントについては、「データの送信元の装置からプロセスに対するデータの送信」というイベントとして表すようにノード１２及びエッジ１４を生成するようにしてもよい。
【００６８】
なお、通信相手の装置の識別情報は、前述した IP アドレスに限定されず、その他の種類のネットワークアドレス（例えば MAC アドレス）、ドメイン名、又は UUID（Universally Unique Identifier）などでもよい。
【００６９】
＜出力対象のイベントグラフ１０の取得＞
特定部２０２０は、出力対象のイベントグラフ１０を取得する。例えば特定部２０２０は、定期的に生成されるイベントグラフ１０を取得し、取得したイベントグラフ１０を出力対象のイベントグラフ１０として扱う。
【００７０】
その他にも例えば、出力対象のイベントグラフ１０は、ユーザの入力操作に応じて取得される。例えばこのユーザ操作は、対象装置において主体又は客体となるオブジェクト（プロセスやファイルなど）を指定する操作である。例えば情報処理装置２０００は、この入力操作に応じてイベント情報を取得し、取得したイベント情報を用いて、指定されたオブジェクトが含まれるイベントグラフ１０を生成する。「指定されたオブジェクトが含まれるイベントグラフ１０」とは、例えば、指定されたオブジェクトを表すノード１２が始点ノード又は終点ノードであるグラフである。情報処理装置２０００は、生成されたイベントグラフ１０を、出力対象のイベントグラフ１０として扱う。上記所定期間は、予め定められていてもよいし、ユーザの入力操作によって指定されてもよい。
【００７１】
ユーザの入力操作の他の例は、期間を指定する入力操作である。この場合、情報処理装置２０００は、指定された期間に対象装置で発生したイベントを示すイベント情報を取得し、取得したイベント情報を用いてイベントグラフ１０を生成する。ここで、或る指定された期間に発生したイベントについてイベントグラフ１０を生成する場合、互いに連結されない複数のイベントグラフ１０が生成される可能性がある。この場合、情報処理装置２０００は、生成された全てのイベントグラフ１０それぞれを出力対象のイベントグラフ１０として扱ってもよいし、一部のイベントグラフ１０（例えば、ユーザによって選択されたイベントグラフ１０）を出力対象のイベントグラフ１０として扱ってもよい。
【００７２】
＜所定基準について＞
特定部２０２０は、イベントグラフ１０に含まれるサブグラフの中から、所定基準を満たすサブグラフを特定する。そのために、特定部２０２０は、所定基準を表す基準情報を取得する。基準情報は、予め特定部２０２０に設定されていてもよいし、特定部２０２０からアクセス可能な記憶装置に記憶させておいてもよい。
【００７３】
所定基準は、正常な状態の対象装置（通常の状態）で発生するイベント列を表すサブグラフによって満たされる基準とすることが好ましい。こうすることで、正常な状態で発生するイベント列を表すサブグラフを集約し、異常な状態で発生するイベント列にユーザが注目しやすくすることができる。
【００７４】
所定基準としては、様々なものを採用しうる。以下、所定基準の具体例をいくつか例示する。
【００７５】
＜＜例１＞＞
例えば、「同じ種類のアプリケーションを表す複数のプロセスが、同一の客体にアクセスしたことを表す」という所定基準を採用できる。言い換えれば、「同一種類のアプリケーションを表す複数のノード１２が、同一のノード１２に対して接続されている」という所定基準である。アプリケーションの種類には、例えばブラウザ、文書作成ソフト、又はメーラなど、様々な種類がある。
【００７６】
図８は、例１の所定基準を満たすサブグラフを含むイベントグラフ１０を例示する図である。図８の上段のイベントグラフ１０には、ブラウザ１からブラウザ３という３種類のブラウザのプロセスが abc.html という１つの HTML ファイルにアクセスしたことを表すサブグラフが含まれている。このサブグラフは、前述した例１の所定基準を満たしている。
【００７７】
そこで例えば、出力部２０４０は、これら３つのブラウザを表すノード１２を１つの代表ノードに集約して出力する。図８の下段のグラフは、特定サブグラフの集約が行われたイベントグラフ１０を例示している。
【００７８】
なお、このように集約表示の対象とするアプリケーションの種類は、全ての種類であってもよいし、特定の種類であってもよい。後者の場合、例えば、集約表示の対象とするアプリケーションの種類を示す情報を、出力部２０４０からアクセス可能な記憶装置に記憶させておく。出力部２０４０は、この情報に示されている種類のアプリケーションについてのみ、上述した集約表示を行う。
【００７９】
＜＜例２＞＞
例えば、「１つのプロセスが同じ拡張子を持つ複数のファイルにアクセスしたことを表す」という所定基準を採用できる。言い換えれば、「１つのノード１２から、互いに同じ拡張子のファイルを表す複数のノード１２に対して接続されている」という所定基準である。
【００８０】
図９は、例２の所定基準を満たすサブグラフを含むイベントグラフ１０を例示する図である。図９の上段のイベントグラフ１０には、App1 というアプリケーションのプロセスが２つのテキストファイルにアクセスしたことを表すサブグラフが含まれている。このサブグラフは、前述した例２の所定基準を満たしている。
【００８１】
そこで例えば、出力部２０４０は、これら２つのテキストファイルを表すノード１２を１つの代表ノードに集約して出力する。図９の下段のグラフは、特定サブグラフの集約が行われたイベントグラフ１０を例示している。
【００８２】
＜＜例３＞＞
例えば、「同じサブネットに属する複数の装置から１つのプロセスに対する通信を表す」という所定基準を採用できる。図１０は、例３の所定基準を満たすサブグラフを含むイベントグラフ１０を例示する図である。図１０の上段のイベントグラフ１０には、172.0.10.0/24 というサブネットに属する２つの装置が App1 というアプリケーションのプロセスと通信したことを表すサブグラフが含まれている。
【００８３】
そこで例えば、出力部２０４０は、これら２つの装置を表すノード１２を１つの代表ノードに集約して出力する。図１０の下段のグラフは、特定サブグラフの集約が行われたイベントグラフ１０を例示している。
【００８４】
＜＜例４＞＞
例えば、「１つのプロセスが、第２所定基準を満たす複数のファイル又はディレクトリにアクセスしたことを表す」という所定基準を採用できる。例えば第２所定基準として、「所定のディレクトリの配下にある」という基準を定めておく。所定のディレクトリとしては、例えば、攻撃時にアクセスされることが知られているディレクトリを１つ以上定めておく。
【００８５】
図１１は、１つのプロセスが所定のディレクトリ配下にある複数のファイルにアクセスしたことを表すサブグラフを含むイベントグラフ１０を例示する図である。この例において、所定基準は、「１つのプロセスが /dir1/dir2 配下にある複数のファイル又はディレクトリにアクセスしたことを表す」である。第２所定基準は、「/dir1/dir2 というディレクトリの配下にある」である。図１１のイベントグラフ１０には、App1 というアプリケーションのプロセスが「/dir1/dir2」配下にある２つのファイルにアクセスしたことを表すサブグラフが含まれている。
【００８６】
図１１の上段のイベントグラフ１０には、App1 というアプリケーションのプロセスが /dir1/dir2 配下にある２つのファイルにアクセスしたことを表すサブグラフが含まれている。そこで例えば、出力部２０４０は、これら２つのファイルを表すノード１２を１つの代表ノードに集約して出力する。図１１の下段のグラフは、特定サブグラフの集約が行われたイベントグラフ１０を例示している。
【００８７】
ここで、「所定のディレクトリ」は、例えば主体となるアプリケーションごとに定めておく。既知のアプリケーションについては、どのディレクトリの配下にあるファイルをアクセスするのかを予め把握しておくことができる。そこで例えば、アプリケーションによってアクセスされることが既知であるディレクトリを、そのアプリケーションに対応する所定のディレクトリとして定めておくことで、アクセスしても問題の無いファイルへのアクセスを表すサブグラフを集約することができる。すなわち、正常なプロセスの活動を表すサブグラフを集約することができる。
【００８８】
なお、「所定のディレクトリ」は、主体となるアプリケーションごとに定めなければいけないわけではなく、全てのアプリケーションに共通して定められていてもよい。
【００８９】
第２所定基準の他の例として、「１つのプロセスが所定のリストに示された複数のファイルにアクセスしたことを表す」という基準を定めておく。例えば、主体となるアプリケーションに対応づけて、そのアプリケーションによってアクセスされることが既知であるファイル（例えば、そのアプリケーションが実行時に読み込むライブラリファイルなど）のリストを定めておく。こうすることで、アプリケーションがアクセスしても問題無いファイルへのアクセスを表すサブグラフを集約することができる。すなわち、正常なプロセスの活動を表すサブグラフを集約することができる。
【００９０】
図１２は、１つのプロセスが所定のリストに示されている複数のファイルにアクセスしたことを表すサブグラフを含むイベントグラフ１０を例示する図である。図１２の上段のイベントグラフ１０には、App1 というアプリケーションのプロセスがリストに示されている３つのファイルにアクセスしたことを表すサブグラフが含まれている。そこで例えば、出力部２０４０は、これら３つのファイルを表すノード１２を１つの代表ノードに集約して出力する。図１２の下段のグラフは、特定サブグラフの集約が行われたイベントグラフ１０を例示している。
【００９１】
ここで、第２所定基準は否定形式で定められてもよい。例えば「所定のディレクトリの配下にない」や「所定のリストに含まれるファイルではない」といった基準である。
【００９２】
例えば攻撃対象として良く知られているディレクトリＤの配下にあるファイルに対するアクセスについては集約せず、その他のファイルへのアクセスについては集約してもよいというケースが考えられる。このような場合、「ディレクトリＤの配下にない」という第２基準を定めておくことにより、ディレクトリＤの配下にないファイルへのアクセスについては集約して出力され、ディレクトリＤの配下にあるファイルへのアクセスについては集約しないで出力されるようにすることができる。これにより、攻撃の可能性があるプロセスの活動に注目しやすいグラフを出力することができる。
【００９３】
＜イベントグラフ１０の出力：Ｓ１０６＞
出力部２０４０は、出力対象のイベントグラフ１０を出力する（Ｓ１０６）。この際、特定サブグラフ（所定基準を満たすサブグラフ）は集約して出力される。特定サブグラフ以外の部分についての出力態様は、第１態様以外の任意の態様であり、例えば全てのノード１２及びエッジ１４が集約されずに出力されるという態様である。
【００９４】
ここで、前述した所定基準を満たすサブグラフは、ノード１２が１対Ｎ又はＮ対１（Ｎ＞１）で接続されている。そこで出力部２０４０は、このような１対Ｎ又はＮ対１の構成をしているサブグラフについて、Ｎ個のノード１２を１つの代表ノードに集約して出力する。
【００９５】
ここで、代表ノードの形態（形状、色、模様など）は、通常のノード１２の形態と異なるものとすることが好適である。こうすることで、ユーザが、代替ノードが複数のノード１２やエッジ１４を集約したものであることを、直感的に把握することができる。例えば図１の例では、通常のノード１２は枠が１つであるのに対し、代表ノードの枠は２重となっている。また、図９〜図１２の例では、通常のノード１２には模様が付されていないのに対し、代表ノードにはドット柄が付されている。
【００９６】
なお、集約出力においてノード１２やエッジ１４を削減する方法は、これまでに図示した特定サブグラフを１つの代表ノード及び１つのエッジで表す方法に限定されない。例えば、特定サブグラフに含まれるノード１２間のエッジのみを省略するようにしてもよい。
【００９７】
また、これまでに図示したように、ノード１２やエッジ１４には、その内容を示す文字情報を付加することが好適である。例えばノード１２には、アプリケーション名やファイル名が付加される。また、エッジ１４には、read や write などといった活動内容を表す文字情報が付加される。
【００９８】
そして、集約出力する際にどのような文字情報を付すかについては、任意である。例えば出力部２０４０は、集約された全てのファイル名や活動内容を列挙した文字情報をイベントグラフ１０に付加する。その他にも例えば、集約に利用した所定基準に応じて、付加する文字情報の形式が定められていてもよい。例えば、同じ拡張子を持つ複数のファイルを集約した場合には、その拡張子を含む文字情報が付加される（図９参照）。このように、集約後のイベントグラフ１０に付加する文字情報を所定基準に応じて定める場合、その文字情報の形式を基準情報に含めておく。
【００９９】
出力対象のイベントグラフ１０の出力先には、様々なものを採用できる。例えば出力部２０４０は、情報処理装置２０００に接続されているディスプレイ装置にイベントグラフ１０を出力する。こうすることで、ディスプレイ装置にイベントグラフ１０が表示される。なお、グラフをディスプレイ装置に表示させる技術には、既存の技術を利用することができる。その他にも例えば、出力部２０４０は、情報処理装置２０００以外の他の装置にイベントグラフ１０を出力（送信）してもよい。その他にも例えば、出力部２０４０は、イベントグラフ１０を記憶装置に出力してもよい（記憶させてもよい）。
【０１００】
ここで、ディスプレイ装置にイベントグラフ１０を表示させる際、特定サブグラフについて集約出力を行うと、集約出力を行わない場合と比較し、イベントグラフ１０全体のサイズを小さくすることができる。すなわち、イベントグラフ１０を画像として表す場合に、その画像サイズを小さくすることができる。よって、イベントグラフ１０を表す画像を生成する処理に利用するプロセッサ資源の削減、生成した画像を記憶しておくために利用する記憶領域の削減、及び生成した画像を表示させるために利用するディスプレイ装置の画面領域の削減を実現できる。また、イベントグラフ１０の画像サイズを小さくすると、ディスプレイ装置の解像度が比較的低くても、イベントグラフ１０をディスプレイ装置に表示することができる。すなわち、イベントグラフ１０を表示させるために必要なディスプレイ装置の解像度を低く抑えることができる。
【０１０１】
＜特定サブグラフの出力態様の変更＞
情報処理装置２０００は、出力対象のイベントグラフ１０を出力した後、特定サブグラフの出力態様を変更するユーザ操作を受け付けてもよい。例えば、特定サブグラフを代表ノードに集約して出力した場合において、ユーザが代表ノードに対して所定の操作（例えばダブルクリック）を加えたことに応じて、特定サブグラフの出力態様を第１態様から第２態様に変更する。すなわち、特定サブグラフを集約しないで表示するようにする。このようにすることで、特定サブグラフを目立ちにくい態様で出力しつつ、ユーザがその内容を詳細に把握したいと思ったときには、その内容を詳細に把握できるようにする。
【０１０２】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
【０１０３】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
１．  出力対象のイベントグラフを取得し、取得した前記出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定部と、
前記特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を前記第１態様以外の態様として、前記イベントグラフを出力する出力部と、を有し、
前記イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表し、
前記第１態様は、ノード及びエッジの少なくとも一方の数を、前記特定されたグラフに含まれる数よりも減らした態様である、情報処理装置。
２．  前記所定基準は、正常な状態で発生するイベント列を表すサブグラフによって満たされる基準である、１．に記載の情報処理装置。
３．  前記所定基準は、１つのプロセスが同じ拡張子を持つ複数のファイルにアクセスしたことを表すという基準である、２．に記載の情報処理装置。
４．  前記所定基準は、同じサブネットに属する複数の装置から１つのプロセスに対する通信を表すという基準である、２．に記載の情報処理装置。
５．  前記所定基準は、１つのプロセスが第２所定基準を満たす複数のファイル又はディレクトリにアクセスしたことを表すという基準である、２．に記載の情報処理装置。
６．  前記第２所定基準は、所定のディレクトリの配下にあるという基準、又は所定のリストに示されているという基準である、５．に記載の情報処理装置。
７．  前記特定部は、入力操作により指定された前記イベントの主体又は客体を表すノードを含むイベント列を表すイベントグラフを取得する、１．乃至６．いずれか一つに記載の情報処理装置。
【０１０４】
８．  コンピュータによって実行される制御方法であって、
出力対象のイベントグラフを取得し、取得した前記出力対象のイベントグラフの中から、所定基準を満たすサブグラフを特定する特定ステップと、
前記特定されたサブグラフの出力態様を第１態様とし、他の部分の出力態様を前記第１態様以外の態様として、前記イベントグラフを出力する出力ステップと、を有し、
前記イベントグラフは、プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表し、
前記第１態様は、ノード及びエッジの少なくとも一方の数を、前記特定されたグラフに含まれる数よりも減らした態様である、制御方法。
９．  前記所定基準は、正常な状態で発生するイベント列を表すサブグラフによって満たされる基準である、８．に記載の制御方法。
１０．  前記所定基準は、１つのプロセスが同じ拡張子を持つ複数のファイルにアクセスしたことを表すという基準である、９．に記載の制御方法。
１１．  前記所定基準は、同じサブネットに属する複数の装置から１つのプロセスに対する通信を表すという基準である、９．に記載の制御方法。
１２．  前記所定基準は、１つのプロセスが第２所定基準を満たす複数のファイル又はディレクトリにアクセスしたことを表すという基準である、９．に記載の制御方法。
１３．  前記第２所定基準は、所定のディレクトリの配下にあるという基準、又は所定のリストに示されているという基準である、１２．に記載の制御方法。
１４．  前記特定ステップにおいて、入力操作により指定された前記イベントの主体又は客体を表すノードを含むイベント列を表すイベントグラフを取得する、８．乃至１３．いずれか一つに記載の制御方法。
【０１０５】
１５．  ８．乃至１４．いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【図１】
2020100284.tif 000003
【図２】
2020100284.tif 000004
【図３】
2020100284.tif 000005
【図４】
2020100284.tif 000006
【図５】
2020100284.tif 000007
【図６】
2020100284.tif 000008
【図７】
2020100284.tif 000009
【図８】
2020100284.tif 000010
【図９】
2020100284.tif 000011
【図１０】
2020100284.tif 000012
【図１１】
2020100284.tif 000013
【図１２】
2020100284.tif 000014
【国際調査報告】
2020100284.tif 000015
2020100284.tif 000016
2020100284.tif 000017
2020100284.tif 000018