(57)【要約】  情報処理装置は、プログラムの活動を表すグラフを生成する。このグラフにおいて、エッジは、イベントにおけるプロセスの活動内容を表す。また、エッジによって接続される２つのノードはそれぞれ、イベントの主体と客体を表す。情報処理装置は、生成したグラフを出力する。さらに情報処理装置は、生成したグラフの変更も行う。イベントの発生数又は発生頻度に基づくそのイベントについての指標値が第１所定条件を満たす場合、情報処理装置は、そのイベントを表すエッジについてグラフに変更を加える。また情報処理装置は、１）ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについてグラフに変更を加える処理と、２）エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについてグラフに変更を加える処理と、のうちの少なくとも一方を実行する。
2019186777.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成手段と、
前記生成されたグラフを出力する出力手段と、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更手段と、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更手段と、を有し、
前記出力手段は、前記第１変更手段又は前記第２変更手段によって変更された前記グラフを出力する、情報処理装置。
【請求項２】
前記イベントの指標値は、そのイベントの発生数又は発生頻度と正の相関を持つ値として算出され、前記第１所定条件は、前記イベントの指標値が所定値以上であることによって満たされるか、又は、
前記イベントの指標値は、そのイベントの発生数又は発生頻度と負の相関を持つ値として算出され、前記第１所定条件は、前記イベントの指標値が所定値以下であることによって満たされる、請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、複数の対象装置について前記グラフを生成し、
前記イベントの発生頻度は、所定のタイムウインドウ内においてそのイベントが発生した前記対象装置の数を、前記対象装置の総数で割った数である、請求項２に記載の情報処理装置。
【請求項４】
前記ノードの指標値は、そのノードが操作された回数又は操作された頻度と正の相関を持つ値として算出され、前記第２所定条件は、前記ノードの指標値が所定値以下であることによって満たされるか、又は、
前記ノードの指標値は、そのノードが操作された回数又は操作された頻度と負の相関を持つ値として算出され、前記第２所定条件は、前記ノードの指標値が所定値以上であることによって満たされる、請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度と正の相関を持つ値として算出され、前記第３所定条件は、前記エッジの指標値が所定値以下であることによって満たされるか、又は、
前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度と負の相関を持つ値として算出され、前記第３所定条件は、前記エッジの指標値が所定値以上であることによって満たされる、請求項１乃至４いずれか一項に記載の情報処理装置。
【請求項６】
コンピュータによって実行される制御方法であって、
プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成ステップと、
前記生成されたグラフを出力する出力ステップと、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更ステップと、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更ステップと、を有し、
前記出力ステップにおいて、前記第１変更ステップ又は前記第２変更ステップによって変更された前記グラフを出力する、制御方法。
【請求項７】
プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成ステップと、
前記生成されたグラフを出力する出力ステップと、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更ステップと、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更ステップと、をコンピュータに実行させ、
前記出力ステップにおいて、前記第１変更ステップ又は前記第２変更ステップによって変更された前記グラフを出力する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムの活動を把握する技術に関する。
【背景技術】
【０００２】
コンピュータ上で動作するプログラムの活動を把握するために、プログラムの活動をグラフで表現する技術が開発されている。ここでいうグラフとは、ノードの集合及びノード間を接続するエッジの集合で構成されるデータ構造を意味する。【０００３】
プログラムの活動をグラフ化する技術を開示している先行技術文献には、例えば特許文献１がある。特許文献１は、コンピューティングシステムに対する攻撃を検出するために、不審イベントをエッジとし、なおかつその不審イベントの主体及び客体をそれぞれノードとするイベント相関グラフを生成する技術を開示している。より具体的には、不審イベントの属性に基づいて不審性スコアが定義され、イベント相関グラフを構成するエッジ及びノードの不審性スコアから攻撃スコアを算出することにより、攻撃の検知が行われる。ここで、攻撃スコアの算出方法の一つとして、イベント相関グラフのサイズに基づいて算出する方法が開示されている。さらに特許文献１には、生成したイベント相関グラフを管理者に提示することも開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１６−５２８６５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
システム上では、様々なプログラムが様々な活動を行いうる。そのため、プログラムの活動の全てをグラフに表すと、ノードやエッジの数が多くなるため、グラフの出力に多くの計算機資源を消費する。【０００６】
この点、特許文献１には、イベント相関グラフのサイズに基づいて攻撃スコアを算出する際、攻撃スコアを算出する前に、不審性スコアが低いノードやエッジをイベント相関グラフから削除してもよいことが開示されている。しかしながら、不審性スコア以外の指標に基づいてノードやエッジを削除することは開示されていない。また、管理者に提示するイベント相関グラフについては、このように一部のノードやエッジを削除することが開示されていない。【０００７】
本発明は上記の課題に鑑みてなされたものであり、その目的の一つは、プログラムの活動を表すグラフの出力に要する計算機資源量を適切に削減する技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、１）プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成手段と、２）生成されたグラフを出力する出力手段と、３）イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについてグラフを変更する第１変更手段と、４）ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについてグラフを変更する処理と、エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについてグラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更手段と、を有する。出力手段は、第１変更手段又は第２変更手段によって変更されたグラフを出力する。【０００９】
本発明の制御方法は、コンピュータによって実行される制御方法である。当該制御方法は、１）プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成ステップと、２）生成されたグラフを出力する出力ステップと、３）イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについてグラフを変更する第１変更ステップと、４）ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについてグラフを変更する処理と、エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについてグラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更ステップと、を有する。出力ステップにおいて、第１変更ステップ又は第２変更ステップによって変更されたグラフを出力する。【００１０】
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、プログラムの活動を表すグラフの出力に要する計算機資源量を適切に削減する技術が提供される。
【図面の簡単な説明】
【００１２】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１３】
【図１】情報処理装置によって生成されるグラフを例示する図である。
【図２】実施形態１の情報処理装置の構成を例示する図である。
【図３】情報処理装置を実現するための計算機を例示する図である。
【図４】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図５】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図６】イベント情報をテーブル形式で例示する図である。
【図７】互いに異なる対象装置について生成されるグラフを連結することで１つのグラフを生成する方法を例示する図である。
【図８】エッジをグラフから除外する方法を例示する図である。
【図９】代替表示の形態のバリエーションを例示する図である。
【図１０】一部が省略されたグラフに対するユーザ操作を例示する図である。
【図１１】ノードをグラフから除外する方法を例示する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１５】
［実施形態１］
＜概要＞
まず本実施形態の情報処理装置（図２における情報処理装置２０００）の動作の概要について説明する。ここで説明する事項は、情報処理装置２０００の動作についての理解を容易にするための概念的な説明であり、情報処理装置の動作を具体的に限定するものではない。
【００１６】
情報処理装置２０００は、対象装置におけるプログラムの活動を表すグラフ１０を生成する。図１は情報処理装置２０００によって生成されるグラフ１０を例示する図である。グラフ１０は、ノード１２の集合及びノード１２間を接続するエッジ１４の集合で構成されるデータ構造である。グラフ１０では、エッジ１４及びそのエッジ１４によって接続される２つのノード１２により、１つのイベントが表される。
【００１７】
イベントとは、プロセス（実行中のプログラム）が何らかの客体に対して行った活動を表す。エッジ１４は、イベントにおけるプロセスの活動内容を表す。そして、エッジ１４によって接続される２つのノード１２がそれぞれ、イベントの主体と客体を表す。イベントの主体はプロセスである。イベントの客体は、プロセスやファイルなどである。例えば或るプロセスが発生させるイベントは、他のプロセスの起動、他のプロセスとの通信、又はファイルへのアクセスなどである。
【００１８】
なお、図１において、グラフ１０は、エッジ１４が方向を持つ有向グラフとして表されている。このようにグラフ１０を有向グラフとする場合、エッジ１４の始点と接続されているノード１２がイベントの主体を表し、エッジ１４の終点と接続されているノード１２がイベントの客体を表す。しかしながら、グラフ１０は必ずしも有向グラフである必要はなく、無向グラフであってもよい。
【００１９】
情報処理装置２０００は、生成したグラフ１０を出力する。例えばグラフ１０は、対象装置の監視を行うユーザによって利用される。ユーザは、グラフ１０を閲覧することにより、対象装置の状況を把握する。より具体的には、ユーザは、グラフ１０を閲覧することにより、対象装置において異常な状態を表すイベントが発生していないかどうかを確認する。異常な状態を表すイベントとは、例えば、マルウエアが介在していると考えられるイベントなどである。ただし、ここでいう「異常」は、セキュリティ上の異常には限定されない。例えば、プログラムのバグによってプロセスが想定外の動作を行っているなどといった異常も含まれる。
【００２０】
さらに情報処理装置２０００は、生成したグラフ１０の変更も行う。具体的には、イベントの発生数又は発生頻度に基づくそのイベントについての指標値が第１所定条件を満たす場合、情報処理装置２０００は、そのイベントを表すエッジ１４についてグラフ１０に変更を加える。以下、「イベントの発生数又は発生頻度に基づくそのイベントについての指標値」をイベント発生指標値と呼ぶ。
【００２１】
概念的には、情報処理装置２０００は、発生数が多いイベント又は発生頻度が高いイベントについては、そのイベントを表すエッジ１４に接続されているノード１２をグラフ１０に含めないようにする。イベント発生指標値は、この動作を実現するための指標として利用される。
【００２２】
異常な状態を表すイベントは、通常の状態を表すイベントよりも発生しにくいものであるため、その発生数や発生頻度は小さいと考えられる。言い換えれば、正常な状態を表すイベントは、その発生数や発生頻度が大きいと考えられる。そこで情報処理装置２０００は、発生数や発生頻度が比較的大きいイベント（すなわち、正常な状態を表すイベント）の情報をグラフ１０から取り除くことで、グラフ１０を利用するユーザが、異常な状態を表している可能性があるイベントに注力しやすくなる。よって、情報処理装置２０００によれば、ユーザにとってグラフ１０の利便性が向上するという効果がある。
【００２３】
さらに情報処理装置２０００によれば、正常な状態を表すイベントについての情報をグラフ１０から減らすことができるため、上述のようにユーザにとってのグラフ１０の利便性を向上しつつ、グラフ１０を出力するために要する計算機資源を削減することができるという効果がある。例えば、グラフ１０に含まれるノード１２やエッジ１４の数が減るため、グラフ１０を表す画面データがより単純なものとなる。そのため、グラフ１０を表す画面データの生成に必要なプロセッサ資源の削減や、その画面データを表示するために必要なディスプレイ装置の表示領域の削減などを実現できる。また、グラフ１０に含まれるノード１２やエッジ１４の数が減るため、グラフ１０を表す情報のデータサイズが小さくなる。そのため、グラフ１０を表す情報を記憶させておくために必要な記憶領域を削減することができる。また、情報処理装置２０００が他の装置へグラフ１０を表す情報を送信する際、その送信に必要なネットワーク帯域を削減できる。
【００２４】
また情報処理装置２０００は、１）ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについてグラフ１０に変更を加える処理と、２）エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについてグラフ１０に変更を加える処理と、のうちの少なくとも一方を実行する。以下、「ノードに対する操作履歴に基づくそのノードの指標値」をノード操作指標値と呼び、「エッジに対する操作履歴に基づくそのエッジの指標値」をエッジ操作指標値と呼ぶ。
【００２５】
概念的には、情報処理装置２０００は、１）操作された回数若しくは頻度が小さいノード１２、又は２）操作された回数若しくは頻度が小さいエッジ１４を、グラフ１０に含めないようにする。ノード操作指標値とエッジ操作指標値はそれぞれ、１）と２）の動作を実現するための指標値である。
【００２６】
操作回数や操作頻度が小さいノード１２やエッジ１４によって表されるイベントは、ユーザが興味を示している度合いの小さいイベントであると考えられる。例えば前述した様にユーザがグラフ１０を閲覧することで対象装置の状況を把握する場合、ユーザは、異常な状態を表す蓋然性が高いイベントを表すノード１２やエッジ１４に注目し、これらに対して操作を加えることが多いといえる。そこで情報処理装置２０００は、操作回数や操作頻度が小さいノード１２やエッジ１４によって表されるイベントについての情報をグラフ１０から減らすことにより、ユーザが、興味を示している度合いの高いイベントに注力しやすくする。よって、情報処理装置２０００によれば、ユーザにとってグラフ１０の利便性が向上するという効果がある。
【００２７】
また、このようにユーザが興味を示している度合いの小さいイベントに関する情報をグラフ１０から取り除くことにも、グラフ１０の利便性を向上させつつ、グラフ１０を出力するために要する計算機資源を削減することができるという効果がある。
【００２８】
なお、上述した計算機資源の削減は、グラフ１０が出力される回数が多くなるほど顕著になる。複数のユーザがそれぞれ異なる端末でグラフ１０を閲覧する場合、例えば情報処理装置２０００は、各端末に対してグラフ１０を送信する。このような場合、グラフ１０のサイズを小さくしたことによるネットワーク帯域の使用量の削減効果が大きい。また、プロセッサ資源やディスプレイ装置の表示領域の削減などが各端末で実現されるため、システム全体として見た時の削減効果が大きい。
【００２９】
以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００３０】
＜情報処理装置２０００の機能構成の例＞
図２は、実施形態１の情報処理装置２０００の構成を例示する図である。情報処理装置２０００は、生成部２０２０、第１変更部２０６０、第２変更部２０８０、及び出力部２０４０を有する。生成部２０２０は、対象装置についてグラフ１０を生成する。出力部２０４０はグラフ１０を出力する。第１変更部２０６０は、或るイベントのイベント発生指標値が第１所定条件を満たす場合に、そのイベントを表すエッジ１４について、グラフ１０を変更する。第２変更部２０８０は、１）或るノード１２のノード操作指標値が第２所定条件を満たす場合にそのノード１２についてグラフ１０を変更する処理と、２）或るエッジ１４のエッジ操作指標値が第３所定条件を満たす場合にそのエッジ１４についてグラフ１０を変更する処理とのうち、少なくとも一方の処理を実行する。出力部２０４０は、第１変更部２０６０又は第２変更部２０８０によって変更されたグラフ１０を出力する。
【００３１】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００３２】
図３は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、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、サーバマシン、タブレット端末、又はスマートフォンなどといった任意のコンピュータである。また、対象装置は物理マシンには限定されず、仮想マシンであってもよい。
【００３７】
対象装置は、１つであってもよいし、複数であってもよい。例えば情報処理装置２０００は、複数の対象装置それぞれについてグラフ１０を生成する。ただし後述するように、複数の対象装置が互いに通信している場合、各対象装置について生成されるグラフ１０を連結することにより、複数の対象装置について１つのグラフ１０を生成してもよい。
【００３８】
＜処理の流れ＞
図４及び図５は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。図４のフローチャートは、グラフ１０を生成する処理の流れを例示している。一方、図５のフローチャートは、グラフ１０を変更する処理の流れを例示している。
【００３９】
＜＜図４のフローチャート＞＞
生成部２０２０は、対象装置についてグラフ１０を生成する（Ｓ１０２）。出力部２０４０はグラフ１０を出力する（Ｓ１０４）。
【００４０】
＜＜図５のフローチャート＞＞
生成部２０２０は、新たに発生したイベントについてのノード１２とエッジ１４をグラフ１０に追加する（Ｓ１０５）。第１変更部２０６０は、イベント発生指標値が第１所定条件を満たすイベントが存在するか否かを判定する（Ｓ１０６）。イベント発生指標値が第１所定条件を満たすイベントが存在する場合（Ｓ１０６：ＹＥＳ）、第１変更部２０６０はそのイベントを表すエッジ１４についてグラフ１０を変更する（Ｓ１０８）。イベント発生指標値が第１所定条件を満たすイベントが存在しない場合（Ｓ１０６：ＮＯ）、図５の処理はＳ１１０に進む。
【００４１】
第２変更部２０８０は、ノード操作指標値が第２所定条件を満たすノード１２が存在するか否かを判定する（Ｓ１１０）。ノード操作指標値が第２所定条件を満たすノード１２が存在する場合（Ｓ１１０：ＹＥＳ）、第２変更部２０８０はそのノード１２についてグラフ１０を変更する（Ｓ１１２）。ノード操作指標値が第２所定条件を満たすノード１２が存在しない場合（Ｓ１１０：ＮＯ）、図５の処理はＳ１１４に進む。
【００４２】
第２変更部２０８０は、エッジ操作指標値が第３所定条件を満たすエッジ１４が存在するか否かを判定する（Ｓ１１４）。エッジ操作指標値が第３所定条件を満たすエッジ１４が存在する場合（Ｓ１１４：ＹＥＳ）、第２変更部２０８０はそのエッジ１４についてグラフ１０を変更する（Ｓ１１６）。エッジ操作指標値が第３所定条件を満たすエッジ１４が存在しない場合（Ｓ１１６：ＮＯ）、図５の処理はＳ１１８に進む。
【００４３】
出力部２０４０は、グラフ１０が変更されたか否かを判定する（Ｓ１１８）。グラフ１０が変更された場合（Ｓ１１８：ＹＥＳ）、出力部２０４０は変更後のグラフ１０を出力する（Ｓ１２０）。グラフ１０が変更されていない場合（Ｓ１１８：ＮＯ）、図５の処理は終了する。
【００４４】
情報処理装置２０００が行う処理の流れは、図５に示したものに限定されない。例えば下段のフローチャートにおいて、第１所定条件に関する処理、第２所定条件に関する処理、及び第３所定条件に関する処理という順に行われているが、これらの順序は任意に変更可能である。また、これらの処理は逐次的に実行される必要はなく、並行に実行されてもよい。さらに情報処理装置２０００は、第２所定条件に関する処理と第３所定条件に関する処理の双方を行うように構成される必要は無く、これらのいずれか一方のみを行うように構成されてもよい。
【００４５】
情報処理装置２０００がグラフ１０を生成する処理（図４のフローチャート）を実行する契機は様々である。例えば情報処理装置２０００は、対象装置についてグラフ１０を生成する指示を表す入力を、ユーザから受け付ける。情報処理装置２０００は、この入力に応じ、グラフ１０を生成して出力する。その他にも例えば、情報処理装置２０００は、グラフ１０の生成が可能な対象装置（例えば、LAN を介して情報処理装置２０００と接続されている装置）の中に、まだグラフ１０の生成が行われていないものがあるか否かを判定し、まだグラフ１０の生成が行われていない対象装置が存在したら、その対象装置についてグラフ１０を自動的に生成してもよい。
【００４６】
対象装置についてグラフ１０が生成された後は、その対象装置についてグラフ１０の変更を試みる処理（図５のフローチャート）が行われる。情報処理装置２０００がグラフ１０の変更を試みる処理を実行する契機は様々である。例えば情報処理装置２０００は、定期的にグラフ１０の変更を試みる。その他にも例えば、生成済みのグラフ１０を出力する操作がユーザによって行われた場合に、情報処理装置２０００は、グラフ１０の出力を行う前に、グラフ１０の変更を試みる。この場合、情報処理装置２０００は、グラフ１０が変更されていない場合であってもグラフ１０を出力する（図５のＳ１１８が不要）。この場合、グラフ１０が変更されていなければ以前と同じグラフ１０が出力され、グラフ１０が変更されている場合には変更後のグラフ１０が出力されることになる。
【００４７】
＜イベントについて＞
前述したように、イベントとは、プロセスが何らかの客体に対して行った活動である。或るプロセスが他のプロセスを客体として活動する場合、これらのプロセスは互いに同一の OS（Operating System）上で動作するものであってもよいし、互いに異なる OS 上で動作するものであってもよい。後者の例としては、例えば、ソケットインタフェースを利用することで、或るプロセスが他の OS 上で動作する別のプロセスと通信を行うことが考えられる。
【００４８】
例えばイベントは、主体、客体、活動内容、及び発生時刻という４つの要素を表す情報によって識別される。例えば主体を表す情報（以下、主体情報）は、そのイベントを発生させたプロセスを識別する情報である。以下、プロセスを識別する情報をプロセス識別情報と呼ぶ。プロセス識別情報は、例えば、プロセスの名称を示す。その他にも例えば、プロセス識別情報は、プロセスに対応するプログラムの実行ファイルの名称やパス、又はプロセスＩＤ（Identifier）などである。なお、プロセス識別情報は、実行ファイルのパスとプロセスＩＤの組み合わせなど、複数の識別子の組み合わせであってもよい。
【００４９】
客体を表す情報（以下、客体情報）は、例えば、その客体の種別及び識別情報である。客体の種別は、例えば、プロセス、ファイル、又はソケットなどである。客体がプロセスである場合、客体情報にはそのプロセスのプロセス識別情報が含まれる。
【００５０】
客体がファイルである場合、客体情報には、そのファイルを識別する情報（以下、ファイル識別情報）が含まれる。ファイル識別情報は、例えばそのファイルの名称やパスなどである。また、客体がファイルである場合、客体情報にはそのファイルのハッシュ値が含まれていてもよい。
【００５１】
客体がソケットである場合、例えば客体情報には、ソケットに割り当てられた識別子が含まれる。
【００５２】
活動内容を表す情報（以下、内容情報）は、例えば、種々ある活動内容に予め割り当てておく識別子である。例えば、「プロセスを起動する」、「プロセスを停止する」、「ファイルをオープンする」、「ファイルからデータを読み込む」、「ファイルにデータを書き込む」、「ソケットをオープンする」、「ソケットからデータを読み込む」、又は「ソケットにデータを書き込む」などといった活動の内容に、互いに異なる識別子を割り当てておく。なお、ソケットに対するアクセスは、そのソケットに対応づけられた他の装置へのアクセスを意味する。
【００５３】
グラフ１０の生成には、対象装置で発生した各イベントを表す情報が必要である。以下、この情報をイベント情報と呼ぶ。例えばイベント情報は、対象装置で発生した各イベントについて、主体情報、客体情報、内容情報、及び発生時刻の組み合わせを示す。
【００５４】
図６は、イベント情報をテーブル形式で例示する図である。以下、図６のテーブルをテーブル２００と呼ぶ。テーブル２００は、主体情報２０２、客体情報２０４、内容情報２０６、及び発生時刻２０７を含む。主体情報２０２は、プロセス名２０８及びパス２１０が含まれている。客体情報２０４には、種別２１２及び識別情報２１４が含まれている。発生時刻２０７は、イベントが発生した時刻を示す。
【００５５】
例えばイベント情報は、対象装置で発生した各イベントについての情報をログに記録しておくことで生成することができる。発生したイベントについての情報をログに記録しておく技術には、既存の技術を利用することができる。
【００５６】
＜グラフ１０の生成：Ｓ１０２＞
生成部２０２０は対象装置についてグラフ１０を生成する（Ｓ１０２）。そのために生成部２０２０は、前述したイベント情報を取得する。生成部２０２０はイベント情報を利用してグラフ１０を生成する。
【００５７】
グラフ１０におけるエッジ１４及びノード１２は、イベント情報によって定められる。具体的には、内容情報がエッジ１４を定め、主体情報と客体情報それぞれがエッジ１４によって接続される２つのノード１２を定める。ここで、エッジ及びその両端のノードを定める情報を用いてグラフを生成する技術には、既存の技術を利用することができる。
【００５８】
基本的には、或るイベントにおける客体と他のイベントにおける主体が一致する場合、前者と後者を同じノード１２で表すことにより、複数のイベントについての情報が連結されたグラフ１０が生成されていく。
【００５９】
ただしグラフ１０は、発生時刻を考慮して生成されることが好適である。例えば、或るイベントの客体が他のイベントの主体となる場合、前者のイベントの発生時刻は、後者のイベントの発生時刻よりも早くなる。そこで生成部２０２０は、このようにイベント間の発生時刻の順序を考慮して、グラフ１０を生成する。
【００６０】
＜＜対象装置が複数存在するケースについて＞＞
対象装置が複数存在する場合、例えば生成部２０２０は、対象装置ごとにグラフ１０を生成する。ただし前述したように、互いに通信している複数の対象装置については、これらの対象装置についてのグラフ１０を連結することが好適である。
【００６１】
複数の対象装置それぞれについて生成されたグラフ１０は、例えば、対象装置同士の通信に関するイベントを表すノード１２を介して連結される。対象装置同士の通信は、例えばソケットインタフェースを利用して行われる。例えば、対象装置から他の対象装置に対するデータの送信は、ソケットに対する書き込み動作などで実現される。一方、他の対象装置から送信されたデータの受信は、ソケットに対する読み込み動作などで実現される。
【００６２】
そこで生成部２０２０は、例えば、互いに異なる対象装置において行われたソケットを客体とするイベントについてマッチングを行うことで、互いに異なる対象装置について生成されたグラフ１０を連結する。図７は、互いに異なる対象装置について生成されるグラフを連結することで１つのグラフ１０を生成する方法を例示する図である。
【００６３】
図７の上段では、それぞれ異なる対象装置について生成されたグラフ１０−１とグラフ１０−２とが連結されていない。グラフ１０−１では、ノード１２−１によって表されるプロセスＰ１が、ノード１２−２によって表されるソケットＳ１に対し、データの書き込みを行っている。グラフ１０−２では、ノード１２−３によって表されるプロセスＰ２が、ノード１２−４によって表されるソケットＳ２に対し、データの読み込みを行っている。
【００６４】
ここで、ソケットＳ１とソケットＳ２が通信可能に接続されている（両者の間でコネクションが確立されている）とする。そうすると、プロセスＰ１は、ソケットＳ１及びＳ２を介し、プロセスＰ２に対してデータを送信していることになる。
【００６５】
そこで、生成部２０２０は、上述したソケットＳ１とＳ２とを連結することで、グラフ１０−１とグラフ１０−２とを連結し、１つのグラフ１０を生成する（図７の下段参照）。
【００６６】
なお、どのソケットとどのソケットが通信可能に接続されているのかは、例えば、各ソケットが持つネットワークに関する情報（通信相手のポート番号やＩＰアドレス）とをマッチングすることで特定することができる。
【００６７】
＜新たに発生したイベントの追加：Ｓ１０５＞
グラフ１０を更新する際、生成部２０２０は、新たに発生したイベントに関するノード１２及びエッジ１４をグラフ１０に追加する（Ｓ１０５）。すなわち、生成部２０２０は、まだグラフ１０に反映されていないイベントをグラフ１０に反映する。なお、「新たに発生したイベント」とは、前回グラフ１０の生成又は更新をした時点以降に発生したイベントである。ここで、生成部２０２０は、前回グラフ１０の生成又は更新を行った時点以降に発生したイベントについてのイベント情報を取得し、そのイベント情報を用いて、グラフ１０にノード１２及びエッジ１４を追加する。
【００６８】
＜イベント発生指標値について＞
イベント発生指標値は、イベントの発生数又は発生頻度に基づいて定まる指標値である。ここで、イベントの発生数に基づいてそのイベントのイベント発生指標値を定めるとする。この場合、例えば第１変更部２０６０は、イベント発生指標値を、イベントの発生数が多いほど大きくなる値（すなわち、イベントの発生数と正の相関を持つ値）として定める。例えば第１変更部２０６０は、イベントの発生数そのものをイベント発生指標値とする。その他にも例えば、第１変更部２０６０は、予め定義されている任意の単調非減少関数にイベントの発生数を入力することで得られる値を、イベント発生指標値としてもよい。この単調非減少関数は、予め第１変更部２０６０に設定されていてもよいし、第１変更部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【００６９】
イベントの発生頻度に基づいてそのイベントのイベント発生指標値を定めるケースについても同様である。例えば第１変更部２０６０は、イベント発生指標値を、イベントの発生頻度が高くなるほど大きくなる値（すなわち、イベントの発生頻度と正の相関を持つ値）として定める。例えば第１変更部２０６０は、イベントの発生頻度そのものをイベント発生指標値とする。その他にも例えば、第１変更部２０６０は、予め定義されている任意の単調非減少関数にイベントの発生頻度を入力することで得られる値を、イベント発生指標値としてもよい。この単調非減少関数は、予め第１変更部２０６０に設定されていてもよいし、第１変更部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【００７０】
イベントの発生頻度を算出する方法は様々である。例えばイベントの発生頻度は、所定のタイムウインドウ内において発生したそのイベントの回数に基づいて算出される。タイムウインドウの長さは任意の長さとすることができる。例えば対象装置における或るイベントの発生頻度は、タイムウインドウ内にその対象装置においてそのイベントが発生した回数や、その回数をタイムウインドウの長さで割った値として定められる。
【００７１】
対象装置が複数ある場合、或るイベントの発生頻度は、以下の数式（１）で定めてもよい。
【数１】
2019186777.tif 000003
・・・（１）
ここで、e と w はそれぞれイベントとタイムウインドウを表す。F(e,w) は、タイムウインドウ w 内におけるイベント e の発生頻度である。N(e,w) は、タイムウインドウ w 内においてイベント e が発生した対象装置の数である。Nall は対象装置の総数である。
【００７２】
なお、上述した数式（１）でイベントの発生頻度を求める際、主体、客体、及び活動内容が一致するものが、同じイベントして扱われる。以下、これらが一致するかどうかを判定する方法について説明する。
【００７３】
＜＜主体の一致について＞＞
第１変更部２０６０は、複数のイベントそれぞれについてイベント情報が示す主体情報を比較することで、イベントの主体が一致しているかどうかを判定する。ここで前述したように、イベントの主体は、イベントを発生させたプロセスのプロセス名、実行ファイルの名称、実行ファイルのパスなどである。これらの情報が一致するか否かは、例えば、文字列の類似度を判定するアルゴリズムを利用して判定することができる。
【００７４】
例えば第１変更部２０６０は、対比するイベントの主体情報が互いに一致する場合、これらのイベントの主体が互いに一致すると判定する。一方、対比するイベントの主体情報が互いに一致しない場合、第１変更部２０６０は、これらのイベントの主体が互いに一致しないと判定する。
【００７５】
ただし、実質的には同じイベントであっても、主体情報に差異があることもある。例えば、同内容の実行ファイルのパスは、対象装置ごとに異なることがある。より具体的には、fileA.exe という実行ファイルのパスが、或る対象装置では「C:\dir1\fileA.exe」である一方で、他の対象装置では「D:\dir2\fileA.exe」であるといったケースである。そこで例えば、主体情報が実行ファイルのパスを示す場合、第１変更部２０６０は、実行ファイルのパスのうち、ファイル名の部分のみを比較することで、イベントの主体の一致を判定してもよい。ただし、第１変更部２０６０は、対比する実行ファイルのパスが完全に一致する場合以外は、それらが互いに異なる主体を表すと判定するように構成されてもよい。この場合、対比する実行ファイルのファイル名が互いに同一であっても、ファイルが格納されているディレクトリが互いに異なれば、これらは異なる主体として扱われる。
【００７６】
＜＜客体の一致について＞＞
第１変更部２０６０は、複数のイベントそれぞれについてイベント情報が示す客体情報を比較することで、イベントの客体が一致しているかどうかを判定する。より具体的には、第１変更部２０６０は、対比するイベントの客体情報を比較し、客体情報が互いに一致する場合に、これらのイベントの客体が互いに一致すると判定する。一方、これらのイベントの客体情報が互いに一致しない場合、第１変更部２０６０は、これらのイベントの客体が互いに一致しないと判定する。ただし、客体情報が実行ファイルのパスを示す場合、前述したように、ファイル名の部分のみを比較してもよい。
【００７７】
＜＜活動内容の一致について＞＞
第１変更部２０６０は、複数のイベントそれぞれについてイベント情報が示す内容情報を比較することで、イベントの活動内容が一致しているかどうかを判定する。より具体的には、第１変更部２０６０は、対比するイベントの内容情報を比較し、内容情報が互いに一致する場合に、これらのイベントの活動内容が互いに一致すると判定する。一方、これらのイベントの活動情報が互いに一致しない場合、第１変更部２０６０は、これらのイベントの活動内容が互いに一致しないと判定する。
【００７８】
＜ノード操作指標値について＞
ノード操作指標値は、ノードの操作履歴に基づいて定まる指標値である。例えば或るノード１２についてのノード操作指標値は、これまでにそのノード１２に対して行われた操作の回数（以下、ノード１２の操作回数）又はこれまでにノード１２に対して行われた操作の頻度（以下、ノード１２の操作頻度）に基づいて定められる。
【００７９】
ここで、ノード１２の操作回数に基づいてそのノード１２のノード操作指標値を定めるとする。この場合、例えば第２変更部２０８０は、ノード操作指標値を、ノード１２の操作回数が大きいほど大きくなる値（すなわち、ノード１２の操作回数と正の相関を持つ値）として定める。例えば第２変更部２０８０は、ノード１２の操作回数そのものをノード操作指標値とする。その他にも例えば、第２変更部２０８０は、予め定義されている任意の単調非減少関数にノード１２の操作回数を入力することで得られる値を、そのノード１２のノード操作指標値としてもよい。この単調非減少関数は、予め第２変更部２０８０に設定されていてもよいし、第２変更部２０８０からアクセス可能な記憶装置に記憶されていてもよい。
【００８０】
ノード１２の操作頻度に基づいてそのノード１２のノード操作指標値を定めるケースについても同様である。例えば第２変更部２０８０は、ノード操作指標値を、ノード１２の操作頻度が高いほど大きくなる値（すなわち、ノード１２の操作頻度と正の相関を持つ値）として定める。例えば第２変更部２０８０は、ノード１２の操作頻度そのものをノード操作指標値とする。その他にも例えば、第２変更部２０８０は、予め定義されている任意の単調非減少関数にノード１２の操作頻度を入力することで得られる値を、そのノード１２のノード操作指標値としてもよい。この単調非減少関数は、予め第２変更部２０８０に設定されていてもよいし、第２変更部２０８０からアクセス可能な記憶装置に記憶されていてもよい。
【００８１】
なお、ノード１２の操作頻度は、例えば、所定のタイムウインドウ内においてそのノード１２が操作された回数や、その回数をタイムウインドウの長さで割った値として定められる。
【００８２】
ノード１２のノード操作指標値は、必ずしもそのノード１２に関する全ての操作履歴を利用して算出される必要は無く、一部の操作履歴のみを利用して算出されてもよい。例えば、直近１週間などといった所定のタイムウインドウ内の操作履歴のみを用いてノード操作指標値を算出するようにする。こうすることで、以前は頻繁に操作されていたノード１２であっても、直近はあまり操作されていなければ、そのノード１２のノード操作指標値が小さくなる。一方、以前はあまり操作されていなかったノード１２であっても、直近は頻繁に操作されていれば、そのノード１２のノード操作指標値が大きくなる。よって、ノード操作指標値を、直近のユーザの興味を表す指標とすることができる。
【００８３】
ノード１２に対して行われる操作は様々である。例えば、ディスプレイ装置に表示されたノード１２に対して行われる操作は、そのノード１２を選択する操作（タップやクリックなど）である。その他にも例えば、ディスプレイ装置に表示されたノード１２に対して行われる操作には、そのノード１２の上に指やマウスポインタを所定時間以上重ね続ける操作（いわゆるマウスオーバーを選択する操作）が含まれてもよい。この所定時間は、予め第２変更部２０８０に設定されていてもよいし、第２変更部２０８０からアクセス可能な記憶装置に記憶させておいてもよい。
【００８４】
＜エッジ操作指標値について＞
エッジ操作指標値は、エッジ１４の操作履歴に基づいて定まる指標値である。例えば或るエッジ１４についてのエッジ操作指標値は、これまでにそのエッジ１４に対して行われた操作の回数（以下、エッジ１４の操作回数）又はこれまでにエッジ１４に対して行われた操作の頻度（以下、エッジ１４の操作頻度）に基づいて定められる。
【００８５】
ここで、エッジ１４の操作回数に基づいてそのエッジ１４のエッジ操作指標値を算出する方法には、ノード１２の操作回数に基づいてそのノード１２のノード操作指標値を算出する方法と同様の方法を利用できる。また、エッジ１４の操作頻度に基づいてそのエッジ１４のエッジ操作指標値を算出する方法には、ノード１２の操作頻度に基づいてそのノード１２のノード操作指標値を算出する方法と同様の方法を利用できる。
【００８６】
なお、エッジに対して行われる操作は、ノードに対して行われる操作と同様である。
【００８７】
＜第１変更部２０６０によるグラフ１０の変更：Ｓ１０６、Ｓ１０８＞
第１変更部２０６０は、イベント発生指標値が第１所定条件を満たすイベントが存在する場合（Ｓ１０６：ＹＥＳ）、そのイベントを表すエッジ１４についてグラフ１０を変更する（Ｓ１０８）。前述したように、概念的には、情報処理装置２０００は、発生数が多いイベント又は発生頻度が高いイベントを表すエッジ１４を、グラフ１０に含めないようにする（グラフ１０から除外する）。
【００８８】
イベント発生指標値が、イベント発生数又はイベント発生頻度と正の相関を持つ値として定められているとする。この場合、第１所定条件として、「イベント発生指標値が第１所定値以上である」という条件が利用される。すなわち、第１変更部２０６０は、或るイベントについてのイベント発生指標値が第１所定値以上である場合に、そのイベントを表すエッジ１４をグラフ１０から除外する。一方、イベント発生指標値が、イベント発生数又はイベント発生頻度と負の相関を持つ値として定められているとする。この場合、第１所定条件として、「イベント発生指標値が第１所定値以下である」という条件が利用される。第１所定値は、第１変更部２０６０に予め設定されていてもよいし、第１変更部２０６０からアクセス可能な記憶装置に記憶されていてもよい。
【００８９】
＜＜エッジ１４をグラフ１０から除外する方法＞＞
ここで、エッジ１４をグラフ１０から除外する方法について説明する。図８はエッジ１４をグラフ１０から除外する方法を例示する図である。図８では、エッジ１４−２、ノード１２−２、及びノード１２−３で表されるイベントについて、イベント発生指標値が第１所定条件を満たしているものとする。
【００９０】
図８の上段の例では、第１変更部２０６０は、イベント発生指標値が第１所定条件を満たすイベントを表す情報のうち、エッジ１４のみをグラフ１０から除外する。そこで第１変更部２０６０は、イベント発生指標値が第１所定条件を満たしているイベントにおけるエッジ１４であるエッジ１４−２をグラフ１０から除外して、ノード１２−２とノード１２−３とを直接連結するように、グラフ１０を変更している。このようにエッジ１４を省略することで、描画した際のグラフ１０の画像サイズを大きく減らすことができる。また、エッジ１４についての情報が省略されることにより、グラフ１０のデータサイズも削減することができる。
【００９１】
図８の下段の例では、第１変更部２０６０は、イベント発生指標値が第１所定条件を満たすイベントを表すエッジ１４及び２つのノード１２をグラフ１０から除外する。そのため、エッジ１４−２だけでなく、ノード１２−２とノード１２−３もグラフ１０から除外されている。代わりとして、第１変更部２０６０は、エッジ１４−１等が除外された位置に代替表示１６を含めている。図８の下段の例における処理は、図８の上段の例において直接連結された複数のノード１２を１つの代替表示１６に置き換える処理とも捉えることができる。
【００９２】
代替表示１６をグラフ１０に含めることで、グラフ１０を見たユーザは、この位置についてグラフ１０が省略されていることを把握することができる。また、エッジ１４及び複数のノード１２が１つの代替表示１６に置き換えられるため、描画した際のグラフ１０の画像サイズを削減することができ、なおかつグラフ１０のデータサイズも削減することができる。ただし、代替表示１６をグラフ１０に加えず、エッジ１４−１とエッジ１４−３とを連結するようにしてもよい。
【００９３】
ここで、隣接する複数のエッジ１４（例えば図８におけるエッジ１４−２とエッジ１４−３）がグラフ１０から除外されるとする。この場合、第１変更部２０６０は、これら複数のエッジ１４それぞれに接続されている複数のノード１２を、まとめて１つの代替表示１６に置き換えることが好適である。例えば図８の下段の例において、第１変更部２０６０が、エッジ１４−２とエッジ１４−３をグラフ１０から除外するとする。この場合、第１変更部２０６０は、ノード１２−２、ノード１２−３、及びノード１２−４という３つのノード１２を１つの代替表示１６に置き換える。
【００９４】
ここで、代替表示１６の形態（形状、色、模様など）は、ノード１２の形態と識別可能な任意の形態とすることができる。図９は、代替表示１６の形態のバリエーションを例示する図である。図９の上段の例において、代替表示１６は、形状がノード１２と同じであるが、色がノード１２と異なる。図９の下段の例において、代替表示１６の形態は、ノード１２を重ね合わせた様子を表している。このようにすることで、情報処理装置２０００を初めて利用する人であっても、代替表示１６が複数のノード１２やエッジ１４を置き換えたものであることを、直感的に把握することができる。
【００９５】
＜＜変更されたグラフ１０の復元＞＞
図８の例のようにグラフ１０を変更した場合、ユーザ操作に応じ、グラフ１０を元に戻せることが好適である。図１０は、一部が省略されたグラフ１０に対するユーザ操作を例示する図である。図１０において、代替表示１６は、図８におけるエッジ１４−２、ノード１２−１、及び１２−２が置き換えられたものであるとする。
【００９６】
情報処理装置２０００は、代替表示１６に対してユーザが所定の操作を行ったことに応じ、エッジ１４−２、ノード１２−１、及びノード１２−２をグラフ１０に含めている。すなわち、変更されたグラフ１０を元に戻している。ただしこの際、情報処理装置２０００は、表示１８を表示させている。この表示１８に対してユーザが所定の操作を行うと、情報処理装置２０００は、再度エッジ１４−２、ノード１２−１、及びノード１２−２をグラフ１０から除外し、代わりとして代替表示１６を表示する。このようにすることで、グラフ１０のうち、グラフ１０の省略可能な部分（エッジ１４等が除外される部分）について、表示と非表示（展開と集約）をユーザが容易に切り替えることができる。
【００９７】
表示１８に対する所定の操作には、任意の操作を採用することができる。例えば表示１８に対する操作は、表示１８に対してタップやクリックなどを行う操作である。
【００９８】
＜ノード操作指標値に基づくグラフ１０の変更：Ｓ１１０、Ｓ１１２＞
第２変更部２０８０は、ノード操作指標値が第２所定条件を満たすノード１２が存在する場合（Ｓ１１０：ＹＥＳ）、そのノード１２についてグラフ１０に変更を加える。前述したように、概念的には、情報処理装置２０００は、操作回数が少ないノード１２又は操作頻度が低いノード１２をグラフ１０に含めないようにする。
【００９９】
ノード操作指標値が、ノード１２の操作回数又は操作頻度と正の相関を持つ値として定められているとする。この場合、第２所定条件として、「ノード操作指標値が第２所定値以下である」という条件が利用される。すなわち、第２変更部２０８０は、或るノード１２についてのノード操作指標値が第２所定値以下である場合に、そのノード１２をグラフ１０から除外する。一方、ノード操作指標値が、ノード１２の操作回数又は操作頻度と負の相関を持つ値として定められているとする。この場合、第２所定条件として、「ノード操作指標値が第２所定値以上である」という条件が利用される。第２所定値は、第２変更部２０８０に予め設定されていてもよいし、第２変更部２０８０からアクセス可能な記憶装置に記憶されていてもよい。
【０１００】
＜＜ノード１２をグラフ１０から除外する方法＞＞
ここで、ノード１２をグラフ１０から除外する方法について説明する。図１１はノード１２をグラフ１０から除外する方法を例示する図である。図１１では、ノード１２−２のノード操作指標値が第２所定条件を満たしている。
【０１０１】
図１１には、グラフ１０からノード１２を除外する方法として、３つの方法を例示している。第１の方法では、第２変更部２０８０は、ノード操作指標値が第２所定条件を満たしているノード１２のみをグラフ１０から除外する。そのため、第２変更部２０８０は、ノード１２−２をグラフ１０から除外し、ノード１２−２の両端にあるエッジ１４−２とエッジ１４−３とを接続している。
【０１０２】
第２の方法では、第２変更部２０８０は、ノード操作指標値が第２所定条件を満たしているノード１２に加え、その両端のエッジ１４をグラフ１０から除外する。そのため、第２変更部２０８０は、ノード１２−２に加え、エッジ１４−２及びエッジ１４−３をグラフ１０から除外している。その結果、ノード１２−１とノード１２−３が連結されている。
【０１０３】
第３の方法では、第２の方法で連結された複数のノード１２を１つの代替表示１６に置き換える。そのため、第２変更部２０８０は、ノード１２−１とノード１２−３を代替表示１６に置き換えている。
【０１０４】
これらの方法によれば、エッジ１４を省略するケースと同様に、描画した際のグラフ１０の画像サイズを削減したり、グラフ１０のデータサイズを削減したりすることができる。
【０１０５】
＜エッジ操作指標値に基づくグラフ１０の変更：Ｓ１１４、Ｓ１１６＞
第２変更部２０８０は、エッジ操作指標値が第３所定条件を満たすエッジ１４が存在する場合（Ｓ１１４：ＹＥＳ）、そのエッジ１４についてグラフ１０に変更を加える（Ｓ１１６）。前述したように、概念的には、情報処理装置２０００は、操作回数が少ないエッジ１４、又は操作頻度が低いエッジ１４をグラフ１０に含めないようにする。
【０１０６】
エッジ操作指標値が、エッジ１４の操作回数又は操作頻度と正の相関を持つ値として定められているとする。この場合、第３所定条件として、「エッジ操作指標値が第３所定値以下である」という条件が利用される。すなわち、第２変更部２０８０は、或るエッジ１４についてのノード操作指標値が第３所定値以下である場合に、そのエッジ１４をグラフ１０から除外する。一方、エッジ操作指標値が、エッジ１４の操作回数又は操作頻度と負の相関を持つ値として定められているとする。この場合、第３所定条件として、「エッジ操作指標値が第３所定値以上である」という条件が利用される。第３所定値は、第２変更部２０８０に予め設定されていてもよいし、第２変更部２０８０からアクセス可能な記憶装置に記憶されていてもよい。
【０１０７】
第２変更部２０８０がエッジ１４をグラフ１０から除外する方法には、第１変更部２０６０がエッジ１４をグラフ１０から除外する方法と同様の方法を利用できる。
【０１０８】
＜グラフ１０の出力：Ｓ１０４、Ｓ１１８、Ｓ１２０＞
出力部２０４０は、生成したグラフ１０や、変更を加えたグラフ１０を出力する。ここで、グラフ１０を出力する方法は様々である。以下、グラフ１０の出力方法について説明する。
【０１０９】
＜＜ディスプレイ装置への出力＞＞
例えば出力部２０４０は、情報処理装置２０００に接続されているディスプレイ装置にグラフ１０を出力する。こうすることで、ディスプレイ装置にグラフ１０が表示される。なお、グラフをディスプレイ装置に表示させる技術には、既存の技術を利用することができる。
【０１１０】
ここで、ディスプレイ装置にグラフ１０を表示させる場合、グラフ１０に変更を加えて一部のノード１２やエッジ１４を省略すると、省略前に比べ、グラフ１０のサイズを小さくすることができる。すなわち、グラフ１０を画像として表す場合に、その画像サイズを小さくすることができる。よって、グラフ１０を表す画像を生成する処理に利用するプロセッサ資源の削減、生成した画像を記憶しておくために利用する記憶領域の削減、及び生成した画像を表示させるために利用するディスプレイ装置の画面領域の削減を実現できる。また、グラフ１０の画像サイズを小さくすると、ディスプレイ装置の解像度が比較的低くても、グラフ１０をディスプレイ装置に表示することができる。すなわち、グラフ１０を表示させるために必要なディスプレイ装置の解像度を低く抑えることができる。
【０１１１】
また、グラフ１０に含まれるノード１２やエッジ１４の数が少ないほど、表示されているノード１２やエッジ１４がユーザにとって見やすくなる。ここで、第１変更部２０６０は、発生数が多いイベント又は発生頻度が高いイベントについての情報をグラフ１０から除外する。前述したように、異常な状態を表すイベントは、通常のイベントよりも発生しにくいものであるため、その発生数や発生頻度は小さいと考えられる。そのため、発生数が多いイベントや発生頻度が高いイベント（すなわち、正常な状態を表すイベント）の情報をグラフ１０から取り除くことで、グラフ１０を利用するユーザが、異常な状態を表している可能性があるイベントを容易に見つけることができるようになる。
【０１１２】
また、第２変更部２０８０は、操作回数や操作頻度が小さいノード１２やエッジ１４をグラフ１０から除外する。ここで前述したように、操作回数や操作頻度が小さいノード１２やエッジ１４によって表されるイベントは、ユーザが興味を示している度合いが小さいイベントであると考えられる。そこで情報処理装置２０００は、このようなイベントを表す情報をグラフ１０から取り除くことで、グラフ１０を利用するユーザが、異常な状態を表している可能性があるイベントを容易に見つけることができるようになる。
【０１１３】
＜＜他の装置への出力＞＞
出力部２０４０は、情報処理装置２０００以外の他の装置にグラフ１０を出力（送信）してもよい。ここで、ノード１２やエッジ１４の数を減らすと、グラフ１０のデータサイズを小さくすることができる。よって、グラフ１０を他の装置に送信するために要するプロセッサ資源やネットワークの帯域幅を削減することができる。
【０１１４】
＜＜記憶装置への出力＞＞
出力部２０４０は、グラフ１０を記憶装置に出力してもよい（記憶させてもよい）。前述したように、ノード１２やエッジ１４の数を減らすと、グラフ１０のデータサイズを小さくすることができる。よって、グラフ１０を記憶させるために利用する記憶領域を削減することができる。
【０１１５】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
【０１１６】
１．  プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成手段と、
前記生成されたグラフを出力する出力手段と、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更手段と、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更手段と、を有し、
前記出力手段は、前記第１変更手段又は前記第２変更手段によって変更された前記グラフを出力する、情報処理装置。
２．  前記イベントの指標値は、そのイベントの発生数又は発生頻度と正の相関を持つ値として算出され、前記第１所定条件は、前記イベントの指標値が所定値以上であることによって満たされるか、又は、
前記イベントの指標値は、そのイベントの発生数又は発生頻度と負の相関を持つ値として算出され、前記第１所定条件は、前記イベントの指標値が所定値以下であることによって満たされる、１．に記載の情報処理装置。
３．  前記生成手段は、複数の対象装置について前記グラフを生成し、
前記イベントの発生頻度は、所定のタイムウインドウ内においてそのイベントが発生した前記対象装置の数を、前記対象装置の総数で割った数である、２．に記載の情報処理装置。
４．  前記ノードの指標値は、そのノードが操作された回数又は操作された頻度と正の相関を持つ値として算出され、前記第２所定条件は、前記ノードの指標値が所定値以下であることによって満たされるか、又は、
前記ノードの指標値は、そのノードが操作された回数又は操作された頻度と負の相関を持つ値として算出され、前記第２所定条件は、前記ノードの指標値が所定値以上であることによって満たされる、１．乃至３．いずれか一つに記載の情報処理装置。
５．  前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度と正の相関を持つ値として算出され、前記第３所定条件は、前記エッジの指標値が所定値以下であることによって満たされるか、又は、
前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度と負の相関を持つ値として算出され、前記第３所定条件は、前記エッジの指標値が所定値以上であることによって満たされる、１．乃至４．いずれか一つに記載の情報処理装置。
【０１１７】
６．  コンピュータによって実行される制御方法であって、
プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成ステップと、
前記生成されたグラフを出力する出力ステップと、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更ステップと、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更ステップと、を有し、
前記出力ステップにおいて、前記第１変更ステップ又は前記第２変更ステップによって変更された前記グラフを出力する、制御方法。
７．  前記イベントの指標値は、そのイベントの発生数又は発生頻度が大きいほど大きい値となり、
前記第１所定条件は、前記イベントの指標値が所定値以上であることによって満たされる、６．に記載の制御方法。
８．  前記生成ステップにおいて、複数の対象装置について前記グラフを生成し、
前記イベントの発生頻度は、所定のタイムウインドウ内においてそのイベントが発生した前記対象装置の数を、前記対象装置の総数で割った数である、７．に記載の制御方法。
９．  前記ノードの指標値は、そのノードが操作された回数又は操作された頻度が大きいほど大きい値となり、
前記第２所定条件は、前記ノードの指標値が所定値以下であることによって満たされる、６．乃至８．いずれか一つに記載の制御方法。
１０．  前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度が大きいほど大きい値となり、
前記第３所定条件は、前記エッジの指標値が所定値以下であることによって満たされる、６．乃至９．いずれか一つに記載の制御方法。
【０１１８】
１１．  プログラムの活動に関連するイベントにおける活動内容をエッジとして表し、なおかつそのイベントの主体と客体それぞれをノードとして表すグラフを生成する生成ステップと、
前記生成されたグラフを出力する出力ステップと、
前記イベントの発生数又は発生頻度に基づくそのイベントの指標値が第１所定条件を満たす場合に、そのイベントを表すエッジについて前記グラフを変更する第１変更ステップと、
前記ノードに対する操作履歴に基づくそのノードの指標値が第２所定条件を満たす場合にそのノードについて前記グラフを変更する処理と、前記エッジに対する操作履歴に基づくそのエッジの指標値が第３所定条件を満たす場合にそのエッジについて前記グラフを変更する処理とのうち、少なくとも一方の処理を実行する第２変更ステップと、をコンピュータに実行させ、
前記出力ステップにおいて、前記第１変更ステップ又は前記第２変更ステップによって変更された前記グラフを出力する、プログラム。
１２．  前記イベントの指標値は、そのイベントの発生数又は発生頻度が大きいほど大きい値となり、
前記第１所定条件は、前記イベントの指標値が所定値以上であることによって満たされる、１１．に記載のプログラム。
１３．  前記生成ステップにおいて、複数の対象装置について前記グラフを生成し、
前記イベントの発生頻度は、所定のタイムウインドウ内においてそのイベントが発生した前記対象装置の数を、前記対象装置の総数で割った数である、１２．に記載のプログラム。
１４．  前記ノードの指標値は、そのノードが操作された回数又は操作された頻度が大きいほど大きい値となり、
前記第２所定条件は、前記ノードの指標値が所定値以下であることによって満たされる、１１．乃至１３．いずれか一つに記載のプログラム。
１５．  前記エッジの指標値は、そのエッジが操作された回数又は操作された頻度が大きいほど大きい値となり、
前記第３所定条件は、前記エッジの指標値が所定値以下であることによって満たされる、１１．乃至１４．いずれか一つに記載のプログラム。
【図１】
2019186777.tif 000004
【図２】
2019186777.tif 000005
【図３】
2019186777.tif 000006
【図４】
2019186777.tif 000007
【図５】
2019186777.tif 000008
【図６】
2019186777.tif 000009
【図７】
2019186777.tif 000010
【図８】
2019186777.tif 000011
【図９】
2019186777.tif 000012
【図１０】
2019186777.tif 000013
【図１１】
2019186777.tif 000014
【手続補正書】
【提出日】令和2年9月11日(2020.9.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
＜＜活動内容の一致について＞＞
第１変更部２０６０は、複数のイベントそれぞれについてイベント情報が示す内容情報を比較することで、イベントの活動内容が一致しているかどうかを判定する。より具体的には、第１変更部２０６０は、対比するイベントの内容情報を比較し、内容情報が互いに一致する場合に、これらのイベントの活動内容が互いに一致すると判定する。一方、これらのイベントの内容情報が互いに一致しない場合、第１変更部２０６０は、これらのイベントの活動内容が互いに一致しないと判定する。
【国際調査報告】
2019186777.tif 000015
2019186777.tif 000016
2019186777.tif 000017
2019186777.tif 000018