【文献】
幾世 知範、外3名,通信先と端末内の挙動との依存関係に基づくマルウェアダウンロードサイト特定手法,CSS2014 コンピュータセキュリティシンポジウム2014 論文集 合同開催 マルウェア対策研究人材育成ワークショップ2014 情報処理学会シンポジウムシリーズ,日本,一般社団法人情報処理学会 コンピュータセキュリティ研究会,2014年12月24日,第2014巻,第2号,p.1134−1141
【文献】
大野 成義、外4名,Max Flowアルゴリズムを用いたWebページのクラスタリング方法とその評価,情報処理学会論文誌,日本,社団法人情報処理学会,2006年 3月15日,第47巻,第SIG4(TOD29)号,p.65−75
(58)【調査した分野】(Int.Cl.,DB名)
システムを構成する複数の要素間の関係を示す情報に基づいて、分類対象の第1の前記要素のそれぞれについて、任意の数の前記関係を経由して前記第1の要素に到達可能な第2の前記要素の集合を、取得する要素集合取得手段と、
前記第1の要素のそれぞれに対応する、前記取得された第2の要素の集合を特徴ベクトルとし、該特徴ベクトルの同一性に基づいて、前記第1の要素のそれぞれを、複数の役割のいずれかに分類し、分類した結果を出力する分類手段と、を含む
情報処理システム。
前記分類手段は、前記集合の要素数、前記第1の要素、前記第2の要素の属性、前記第1の要素と前記第2の要素との間の距離及び前記第1の要素と前記第2の要素との間の経路数を任意に、更に含む前記特徴ベクトルの同一性に基づいて、前記第1の要素を分類する
請求項1記載の情報処理システム。
前記要素集合取得手段は、前記第2の要素と、前記第2の要素から前記第1の要素へ到達するために経由する前記関係及び前記要素のそれぞれと、のいずれかの生存について時間的な制約がある場合、時間的に到達可能であることを更に条件として前記第2の要素の集合を取得する
請求項1乃至4のいずれか1項に記載の情報処理システム。
前記要素集合取得手段は、前記第1の要素と前記第2の要素との間の距離、前記第2の要素の属性、前記第2の要素から前記第1の要素へ到達するために経由する前記要素や前記関係の属性を任意に、更に条件として前記第2の要素の集合を取得する
請求項1乃至5のいずれか1項に記載の情報処理システム。
前記分類手段は、前記第1の要素がアプリケーションである場合、前記アプリケーションから生成されたプロセスである、複数の前記第2の要素の生存期間の相対関係に更に基づいて、前記アプリケーションを分類する
請求項1乃至6のいずれか1項に記載の情報処理システム。
システムを構成する複数の要素間の関係を示す情報に基づいて、分類対象の第1の前記要素のそれぞれについて、任意の数の前記関係を経由して前記第1の要素に到達可能な第2の前記要素の集合を、取得し、
前記第1の要素のそれぞれに対応する、前記取得された第2の要素の集合を特徴ベクトルとし、該特徴ベクトルの同一性に基づいて、前記第1の要素のそれぞれを、複数の役割のいずれかに分類し、
分類した結果を出力する処理をコンピュータに実行させる
プログラム。
【発明を実施するための形態】
【0017】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【0018】
<<<第1の実施形態>>>
図1は、本発明の第1の実施形態に係る情報処理システム100の構成を示すブロック図である。
図1に示すように、本実施形態に係る情報処理システム100は、ノード集合取得部(要素集合取得手段とも呼ばれる)110と分類部120とを含む。
【0019】
図1に示す各構成要素は、ハードウエア単位の回路でも、マイクロチップに含まれるモジュールでも、コンピュータ装置の機能単位に分割された構成要素でもよい。ここでは、
図1に示す構成要素が、コンピュータ装置の機能単位に分割された構成要素であるものとして説明する。尚、
図1に示す情報処理システム100は、あるサーバに実装され、ネットワークを介して利用可能にされてよいし、
図1に示す各構成要素がネットワーク上に分散して設置されて利用可能にされてもよい。
【0020】
図2は、本実施形態における情報処理システム100を実現するコンピュータ700のハードウエア構成を示す図である。
【0021】
図2に示すように、コンピュータ700は、CPU(Central Processing Unit)701、記憶部702、記憶装置703、入力部704、出力部705及び通信部706を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。例えば、記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
【0022】
CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の全体の動作を制御する。例えば、CPU701は、記憶装置703に装着された記録媒体707から、そのプログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部702に書き込む。ここで、そのプログラムは、例えば、後述の
図3に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0023】
そして、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、
図1に示すノード集合取得部110及び分類部120して各種の処理を実行する。
【0024】
尚、CPU701は、通信網(不図示)に接続される外部コンピュータ(不図示)から、記憶部702にそのプログラムやそのデータをダウンロードしてもよい。
【0025】
記憶部702は、そのプログラムやそのデータを記憶する。記憶部702は、関係情報810及び分類結果820を記憶してよい。記憶部702は、ノード集合取得部110及び分類部120の一部として含まれてよい。
【0026】
記憶装置703は、例えば、光ディスクや、フレキシブルディスク、磁気光ディスク、外付けハードディスク半導体メモリなどであって、記録媒体707を含む。記憶装置703(記録媒体707)は、そのプログラムをコンピュータ読み取り可能に記憶する。また、記憶装置703は、そのデータを記憶してもよい。記憶装置703は、を含んでよい。[記憶装置703は、関係情報810及び分類結果820を記憶してよい。記憶装置703は、ノード集合取得部110及び分類部120の一部として含まれてよい。]
入力部704は、オペレータによる操作の入力や外部からの情報の入力を受け付ける。入力操作に用いられるデバイスは、例えば、マウスや、キーボード、内蔵のキーボタン及びタッチパネルなどである。入力部704は、ノード集合取得部110及び分類部120の一部として含まれてよい。
【0027】
出力部705は、例えばディスプレイで実現される。出力部705は、例えばGUI(GRAPHICAL User Interface)によるオペレータへの入力要求や、オペレータに対する出力提示などのために用いられる。出力部705は、ノード集合取得部110及び分類部120の一部として含まれてよい。
【0028】
通信部706は、外部とのインタフェースを実現する。通信部706は、ノード集合取得部110及び分類部120の一部として含まれてよい。
【0029】
以上説明したように、
図1に示す情報処理システム100の機能単位の各構成要素は、
図2に示すハードウエア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【0030】
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給される場合、CPU701は、記録媒体707に格納されたそのプログラムのコードを読み出して実行してもよい。或いは、CPU701は、記録媒体707に格納されたそのプログラムのコードを、記憶部702、記憶装置703またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するそのプログラム(ソフトウエア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
【0031】
以上が、本実施形態における情報処理システム100を実現するコンピュータ700の、ハードウエア単位の各構成要素についての説明である。
【0032】
図1に戻って、情報処理システム100の機能単位の各構成要素について説明する。
【0033】
===ノード集合取得部110===
ノード集合取得部110は、関係情報810に基づいて、分類対象のその第1のノード(要素とも呼ばれる)のそれぞれについて、任意の数のリンク(関係とも呼ばれる)を経由してその第1のノードに到達可能な第2のノードの集合を、取得する。関係情報810は、システムを構成する複数のノード間のリンクを示す情報である。
【0034】
ノードは、例えば、プロセスやスレッド、ファイル、環境変数、レジストリなどである。ノードは、アプリケーションとしての実行ファイルやライブラリなどであってもよい。ノードは、プロセス間通信手段であるソケットやパイプなどであってもよい。更に、ノードは、ユーザやマシンであってもよい。マシンは、例えば、コンピュータやサーバ、その他任意の情報処理装置、記憶装置、通信装置などの、実マシン或いは仮想マシンである。
【0035】
ノード集合取得部110は、関係情報810に基づいて、その集合の要素をソートし、リスト形式の集合としてもよい。例えば、ノード集合取得部110は、第1のノードから第2のノードまでの距離(経路長や、情報伝達量を重みにした重み付き距離、時間経過など)に基づいて、その集合の第2のノードをソートする。また、ノード集合取得部110は、第2のノードの属性や、経路上のノードの属性、経路上のリンクの属性などに基づいて、その集合の第2のノードをソートしてもよい。
【0036】
===分類部120===
分類部120は、その分類対象の第1のノードのそれぞれに対応するその第2のノードの集合に基づいて、その分類対象の第1のノードのそれぞれを、複数のロール(役割とも呼ばれる)のいずれかに分類し、分類した結果である分類結果820を出力する。例えば、分類部120は、その分類対象の第1のノードのそれぞれに対応する、その第2のノードの集合のそれぞれを特徴ベクトルとし、それらの特徴ベクトルに基づいてその分類対象の第1のノードを分類する。尚、ノード集合取得部110が、その第2のノードの集合を上述のリスト形式の集合とした場合、分類部120は、そのリスト形式の集合における要素の順番に、その特徴ベクトルの要素の順番を対応させる。
【0037】
尚、分類部120は、既知の分類アルゴリズム(例えば、k−mean clustering)を利用して、上述の分類を実行してよい。
【0038】
また、分類部120は、その第2のノードの集合に加えて、その集合の要素数や、その第1のノードやその各第2のノードの属性、或いはその属性の統計量を更に、特徴ベクトルの要素としてよい。分類部120は、その第1のノードとその各第2のノードとの間の距離や経路数など、を更に、特徴ベクトルの要素としてよい。この場合、関係情報810は、各ノードの任意の属性を含んでよい。
【0039】
以上が、情報処理システム100の機能単位の各構成要素についての説明である。
【0040】
次に本実施形態の動作について、図面を参照して詳細に説明する。
【0041】
図3は、本実施形態の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したCPU701によるプログラム制御に基づいて、実行されてよい。また、処理のステップ名については、S601のように、記号で記載する。
【0042】
情報処理システム100は、例えば、
図2に示す入力部704を介して操作者から指示を受けたことを契機に、
図3に示すフローチャートの動作を開始する。情報処理システム100は、
図2に示す通信部706を介して、外部から要求を受信したことを契機に、
図3に示すフローチャートの動作を開始してもよい。
【0043】
ノード集合取得部110は、関係情報810を取得する(ステップS601)。例えば、関係情報810は、
図2に示す記憶部702或いは記憶装置703に、予め記憶されていてよい。また、ノード集合取得部110は、
図2に示す入力部704を介して操作者が入力した、関係情報810を取得してもよい。また、ノード集合取得部110は、
図2に示す通信部706を介して図示しない機器から、関係情報810を受信してもよい。また、ノード集合取得部110は、
図2に示す記憶装置703を介して、記録媒体707に記録された関係情報810を取得してもよい。
【0044】
次に、ノード集合取得部110は、関係情報810に基づいて、特定の1つの第1のノードに任意の数のリンクを経由して到達可能な第2のノードの集合を、分類対象のその第1のノードのそれぞれについて取得する(ステップS602)。例えば、分類対象のその第1のノードの指定は、
図2に示す記憶部702或いは記憶装置703に、予め記憶されていてよい。また、ノード集合取得部110は、
図2に示す入力部704を介して操作者が入力した、分類対象のその第1のノードの指定を取得してもよい。また、ノード集合取得部110は、
図2に示す通信部706を介して図示しない機器から、分類対象のその第1のノードの指定を受信してもよい。また、ノード集合取得部110は、
図2に示す記憶装置703を介して、記録媒体707に記録された分類対象のその第1のノードの指定を取得してもよい。
【0045】
次に、分類部120は、その分類対象の第1のノードのそれぞれに対応するその第2のノードの集合に基づいて、その分類対象の第1のノードを、複数のロールに分類する(ステップS603)。
【0046】
次に、分類部120は、分類した結果である分類結果820を出力する(ステップS604)。
【0047】
次に、具体的な例を示して、上述の動作を説明する。
【0048】
図4は、関係情報810の具体的な一例である関係情報811を示す図である。
図4において、円形はノードの一種であるプロセスを示し、四角形はノードの一種であるファイルを示す。円形及び四角形の中の文字列は、それぞれのノードの識別子である。具体的には、「a.exe」、「b.exe」及び「c.exe」は、実行ファイル(アプリケーション)である。また、「m.dll」、「n.dll」、「o.dll」、「p.dll」及び「q.dll」は、プログラム部品ライブラリに含まれるプログラム部品である。
【0049】
関係情報811を取得したノード集合取得部110は、例えばプロセスを分類対象の第1のノードとして、以下のように、各プロセスについて到達可能な第2のノードの集合を取得する。ノード集合取得部110は、プロセス「p1」に対応する集合として、{a.exe,m.dll,n.dll,o.dll}を取得する。ノード集合取得部110は、プロセス「p2」に対応する集合として、{a.exe,m.dll,n.dll,o.dll}を取得する。ノード集合取得部110は、プロセス「p3」に対応する集合として、{a.exe,p.dll,q.dll}を取得する。ノード集合取得部110は、プロセス「p4」に対応する集合として、{b.exe,m.dll,n.dll,o.dll}を取得する。ノード集合取得部110は、プロセス「p52」に対応する集合として、{q.exe,p.dll,q.dll}を取得する。
【0050】
次に、分類部120は、上述の各プロセスに対応する集合に基づいて、各プロセスを分類し、
図5に示すような分類結果821を出力する。
【0051】
図5は、分類結果820の具体的な一例である分類結果821を示す図である。
図5に示すように、分類結果821の各レコードは、ロール識別子とノード識別子とを含む。
図5を参照すると、プロセス「p1」、プロセス「p2」及びプロセス「p4」は、ロール「role1」に分類されている。また、プロセス「p3」及びプロセス「p5」は、ロール「role2」に分類されている。
【0052】
管理者は、この分類結果821を確認し、例えば次のような異常を検出することができる。その異常は、「同じ実行ファイル「a.exe」から生成されたプロセス「p1」、プロセス「p2」及びプロセス「p3」が、異なるロール「role1」とロール「role2」とに分類されている」ことである。
【0053】
図6は、関係情報810の他の具体的な一例である関係情報812を示す図である。
図6において、円形はノードの一種であるプロセスを示し、四角形はノードの一種であるファイルを示す。円形及び四角形の中の文字列は、それぞれのノードの識別子である。また、点線の四角形はマシンを示し、点線の四角形の中の上部の文字列は、それぞれのマシンの識別子である。そして、これらの点線の四角形は、これらの点線の四角形のそれぞれの中に含まれる各ノードが、これらの点線の四角形のそれぞれに対応するマシンの識別子を、「自分の属するマシンの識別子」を示す属性として持つことを表す。尚、各ノードとマシンの所属関係は、各マシンをノードとして表し、所属関係をリンクで表してもよい。
【0054】
関係情報812を取得したノード集合取得部110は、例えばファイルを分類対象の第1のノードとして、以下のように、各ファイルについて到達可能な第2のノードの集合を取得する。ノード集合取得部110は、ファイル「f1」に対応する集合として、{p_b, p_c, p_e}を取得する。ノード集合取得部110は、ファイル「f2」に対応する集合として、{}(空集合)を取得する。ノード集合取得部110は、ファイル「f3」に対応する集合として、{p_b, p_c, p_e}を取得する。ノード集合取得部110は、ファイル「f4」に対応する集合として、{p_b, p_c, p_e}を取得する。ノード集合取得部110は、ファイル「f5」に対応する集合として、{}(空集合)を取得する。ノード集合取得部110は、ファイル「f6」に対応する集合として、{p_d}を取得する。
【0055】
次に、分類部120は、上述の各ファイルに対応する集合に基づいて、各ファイルを分類し、
図7に示すような分類結果822を出力する。
【0056】
図7は、分類結果820の他の具体的な一例である分類結果822を示す図である。
図7に示すように、分類結果822の各レコードは、ロール識別子とノード識別子とを含む。
図7を参照すると、ファイル「f2」及びファイル「f5」は、ロール「role1」に分類されている。ファイル「f1」及びファイル「f3」は、ロール「role2」に分類されている。ファイル「f4」及びファイル「f6」は、ロール「role3」に分類されている。即ち、各ファイルは、以下のようなロールのそれぞれに分類されている。ロール「role1」は、「複数マシンに、そのファイルの内容が伝わる、或いは、伝わる可能性がある、ロール」である。ロール「role2」は、「他マシンにそのファイルの内容が伝わらないロール」である。ロール「role3」は、「m_dにのみそのファイルの内容が伝わるロール」である。
【0057】
以上が、本実施形態の動作の説明である。
【0058】
情報処理システム100は、分類対象がマシンやユーザである場合も、以上説明した動作と同様の動作により、これらの要素を分類する。
【0059】
例えば、ノード集合取得部110は、
図2に示す入力部704を介して操作者が入力した、分類対象のその第1のノードの指定として、「mA、mB,mC、mD及びmEで示すマシン」を取得したとする。
【0060】
情報処理システム100は、その指定されたマシンのそれぞれをノードと見做す。そして、情報処理システム100は、特定のマシンによくアクセス(到達)するマシンと複数のマシンからよくアクセスされるマシンの関係や、相互の通信(到達)が多いが特定のマシンにはアクセスしない関係などに基づいて、各マシンのロールを分類する。
【0061】
例えば、マシンのロールとして、クライアントならば事務系クライアント、実験用端末、サーバならば業務用WEBサーバ、技術情報を保持したファイルサーバなどが考えられる。この場合、情報処理システム100は、事務系クライアントは業務用WEBサーバにはよくアクセスすること、実験用端末は実験用端末同士で通信するが業務用WEBサーバなどにはアクセスしないこと、などから、それらのロールを分類する。
【0062】
尚、情報処理システム100は、マシンそのものをノードと見做すことなく、各マシンに含まれるプロセスやファイルのロールに基づいて、各マシンのロールを分類してもよい。
【0063】
上述した本実施形態における効果は、より好適に情報処理装置等を構成する要素を分類することが、可能になる点である。
【0064】
その理由は、以下のような構成を含むからである。即ち、第1に、ノード集合取得部110が、関係情報810に基づいて、第1のノードのそれぞれについて、その第1のノードに到達可能な第2のノードの集合を取得する。第2に、分類部120が、その集合に基づいて、その第1のノードのそれぞれを複数のロールのいずれかに分類する。
【0065】
更に、その理由は、ノード集合取得部110が関係情報810に基づいてその第2のノードの集合をソートし、分類部120がそのソートされた集合における要素の順番に、その特徴ベクトルの要素の順番を対応させるからである。
【0066】
更に、その理由は、分類部120が、関係情報810から得られる任意の情報を特徴ベクトルの要素とし、その特徴ベクトルに基づいて、その第1のノードのそれぞれを複数のロールのいずれかに分類するからである。
【0067】
<<<第1の実施形態の変形例>>>
図8は、第1の実施形態の変形例である情報処理システム101を示す図である。
図8に示すように、情報処理システム101は、
図1に示す情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104と、を含む。情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104とは、ネットワーク109を介して接続されている。尚、情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104との任意の組み合わせは、1台の
図2に示すようなコンピュータ700であってよい。また、情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104との任意のいずれかどうしは、ネットワークを介することなく直接接続されてもよい。即ち、情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104とは、任意に、ネットワーク109を介して接続されてよい。
【0068】
===管理者端末102==
管理者端末102は、管理者の操作に基づいて、分類処理の実行指示を情報処理システム100へ送信する。また、管理者端末102は、情報処理システム100から分類結果820を受信し、その分類結果820の内容を表示する。
【0069】
===関係情報生成装置103===
関係情報生成装置103は、関係情報810を生成し、関係情報記憶装置104に送信する。また、関係情報生成装置103は、情報処理システム100から、分類結果820を受信し、受信した分類結果820に基づいて、関係情報810を更新(例えば、分類結果820の情報を関係情報810に反映)してもよい。
【0070】
===関係情報記憶装置104===
関係情報記憶装置104は、関係情報生成装置103から受信した関係情報810を記憶する。
【0071】
===情報処理システム100===
情報処理システム100は、管理者端末102から分類処理の実行指示を受信し、その実行指示に基づいて、関係情報記憶装置104から関係情報810を取得する。次に情報処理システム100は、その関係情報810に基づいて分類処理を実行し、分類結果820を生成して管理者端末102へ送信する。また、情報処理システム100は、分類結果820を関係情報生成装置103へ送信してもよい。
【0072】
上述した本実施形態における変形例の効果は、情報処理システム101の構築を柔軟に実現することが可能になる点である。
【0073】
その理由は、情報処理システム100と、管理者端末102と、関係情報生成装置103と、関係情報記憶装置104とを、任意に、ネットワーク109を介して接続するからである。
【0074】
<<<第2の実施形態>>>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0075】
図9は、本発明の第2の実施形態に係る情報処理システム200の構成を示すブロック図である。
【0076】
図9に示すように、本実施形態における情報処理システム200は、第1の実施形態の情報処理システム100と比べて、ノード集合取得部110に替えてノード集合取得部210を含む点が異なる。
【0077】
===ノード集合取得部210===
ノード集合取得部210は、取得条件830に更に基づいて、上述の到達可能な第2のノードの集合を取得する。
【0078】
取得条件830は、例えば、第2のノードから第1のノードへ到達するために経由する、リンクの方向の指定である。その取得条件830の具体的な一例は、「それらのリンクの全てが、少なくとも第2のノードから第1のノードへ向かう方向を有していること」である。
【0079】
取得条件830は、「第2のノードと、その第2のノードから第1のノードへ到達するために経由するリンク及びノードのそれぞれと、のいずれかの生存について時間的な制約がある場合、時間的に到達可能であること」であってもよい。
【0080】
取得条件830は、第1のノードと第2のノードとの間の距離や、第1のノードから第2のノードへ到達するために経由するリンク及びノードの属性、第2のノードの属性などに関する条件であってよい。ここで、距離は、経路長や、情報伝達量を重みにした重み付き距離、時間経過であってよい。
【0081】
取得条件830は、上述の例に係わらず、取得条件830から得られる任意の情報に対する条件であってよいし、それらの条件の任意の組み合わせであってよい。
【0082】
情報処理システム200は、
図1に示す情報処理システム100と同様に、
図2に示すコンピュータ700によって実現されてよい。
【0083】
この場合、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、更に、
図9に示すノード集合取得部210としても、各種の処理を実行する。ここで、そのプログラムは、例えば、後述の
図10に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0084】
記憶部702は、更に取得条件830を記憶してよい。記憶部702は、ノード集合取得部210の一部としても含まれてよい。
【0085】
記憶装置703は、更に取得条件830を記憶してよい。記憶装置703は、ノード集合取得部210の一部としても含まれてよい。
【0086】
入力部704は、ノード集合取得部210の一部としても含まれてよい。
【0087】
出力部705は、ノード集合取得部210の一部としても含まれてよい。
【0088】
通信部706は、ノード集合取得部210の一部としても含まれてよい。
【0089】
次に本実施形態の動作について、図面を参照して詳細に説明する。
【0090】
図10は、本実施形態の動作を示すフローチャートである。
図10のフローチャートで示す本実施形態の動作は、
図3に示すフローチャートの動作に比べて、ステップS611が追加になっている点と、ステップS602がステップS612に変更されている点とが異なる。
【0091】
ステップS601の次に、ノード集合取得部210は、取得条件830を取得する(ステップS611)。例えば、取得条件830は、
図2に示す記憶部702或いは記憶装置703に、予め記憶されていてよい。また、ノード集合取得部210は、
図2に示す入力部704を介して操作者が入力した、取得条件830を取得してもよい。また、ノード集合取得部210は、
図2に示す通信部706を介して図示しない機器から、取得条件830を受信してもよい。また、ノード集合取得部210は、
図2に示す記憶装置703を介して、記録媒体707に記録された取得条件830を取得してもよい。
【0092】
次に、ノード集合取得部210は、関係情報810と取得条件830とに基づいて、特定の1つの第1のノードに任意の数のリンクを経由して到達可能な第2のノードの集合を、分類対象のその第1のノードのそれぞれについて取得する(ステップS612)。
【0093】
以上が、本実施形態の動作の説明である。
【0094】
尚、本実施形態の変形例として、
図8に示す情報処理システム101が、情報処理システム100に替えて情報処理システム200を含むシステムとされてもよい。
【0095】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、より合目的的に、情報処理装置等を構成する要素を分類することが可能になる点である。
【0096】
その理由は、ノード集合取得部210は、取得条件830に更に基づいて、上述の到達可能な第2のノードの集合を取得するからである。即ち、上述の到達可能な第2のノードの集合の要素を、取得条件830によって目的に沿って絞り込むことができるからである。
【0097】
<<<第3の実施形態>>>
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0098】
図11は、本発明の第3の実施形態に係る情報処理システム300の構成を示すブロック図である。
【0099】
図11に示すように、本実施形態における情報処理システム300は、第1の実施形態の情報処理システム100と比べて、分類部120に替えて分類部320を含む点が異なる。
【0100】
===分類部320===
分類部320は、更に、第1のノードがアプリケーションである場合、そのアプリケーションから生成されたプロセスである、複数の第2のノードの生存期間の相対関係に基づいて、そのアプリケーションのそれぞれを複数のロールのいずれかに分類する。
【0101】
情報処理システム300は、
図1に示す情報処理システム100と同様に、
図2に示すコンピュータ700によって実現されてよい。
【0102】
この場合、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、更に、
図11に示す分類部320としても、各種の処理を実行する。ここで、そのプログラムは、例えば、後述の
図13に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0103】
記憶部702は、分類部320の一部としても含まれてよい。
【0104】
記憶装置703は、分類部320の一部としても含まれてよい。
【0105】
入力部704は、分類部320の一部としても含まれてよい。
【0106】
出力部705は、分類部320の一部としても含まれてよい。
【0107】
通信部706は、分類部320の一部としても含まれてよい。
【0108】
次に本実施形態の動作について、図面を参照して詳細に説明する。
【0109】
図12は、本実施形態の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したCPU701によるプログラム制御に基づいて、実行されてよい。また、処理のステップ名については、S601のように、記号で記載する。
【0110】
情報処理システム300は、例えば、
図2に示す入力部704を介して操作者から指示を受けたことを契機に、
図12に示すフローチャートの動作を開始する。情報処理システム300は、
図2に示す通信部706を介して、外部から要求を受信したことを契機に、
図12に示すフローチャートの動作を開始してもよい。
【0111】
ステップS601及びステップS602は、
図3に示すステップS601及びステップS602と同じである。
【0112】
次に、分類部320は、分類対象の第1のノードがアプリケーションであるか否かを判定する(ステップS635)。分類対象の第1のノードがアプリケーションである場合(ステップS635でYES)、処理はステップS636へ進む。分類対象の第1のノードがアプリケーションでない場合(ステップS635でNO)、処理はステップS603へ進む。
【0113】
分類部320は、ステップS602で取得された集合に含まれる第2のノードの属性(生存期間の情報)を取得する(ステップS636)。
【0114】
次に、分類部320は、ステップS602で取得された集合とステップS636で取得された属性とに基づいて、分類対象の第1のノードのそれぞれを、複数のロールのいずれかに分類する(ステップS637)。その後、処理はステップステップS604へ進む。
【0115】
ステップS603及びステップS604は、
図3に示すステップS603及びステップS604と同じである。
【0116】
次に、具体的な例を示して、上述の動作を説明する。
【0117】
図13は、関係情報810の具体的な一例である関係情報813を示す図である。
図13において、円形はノードの一種であるプロセスを示し、四角形はノードの一種であるファイル(ここでは、実行ファイル、即ちアプリケーション)を示す。円形及び四角形の中の文字列は、それぞれのノードの識別子である。また、各プロセスのノードのそれぞれの下部に示す文字列は、その各プロセスの生存期間を示す。例えば、プロセス「p_a0」の下部の[t1,t2]は、プロセス「p_a0」の生存期間が時刻t1から時刻t2までであることを示す。尚、tnは、nの値が大きいほど、後(進んだ)時刻であることを示す。また、プロセス「p_c0」の下部の[0:00,*]は、プロセス「p_c0」の生存期間が時刻0:00から時刻*(*は、時刻が特定されないことを示す)までであることを示す。また、プロセス「p_d0」の下部の[t0+Δt,*]は、プロセス「p_d0」の生存期間が時刻t0+Δtから時刻*までであることを示す。ここで、t0はinitプロセスの開始時刻であり、Δtは所定の時間であり、即ち、t0+Δtはinitプロセスの開始時刻から所定の時間が経過した時刻である。
【0118】
関係情報813を取得したノード集合取得部110は、例えばアプリケーション(実行ファイル)を分類対象の第1のノードとして、以下のように、各アプリケーションについて到達可能な第2のノードの集合を取得する。ノード集合取得部110は、アプリケーション「a.exe」に対応する集合として、{p_a0,p_a1,p_a2}を取得する。ノード集合取得部110は、アプリケーション「b.exe」に対応する集合として、{p_b0,p_b1,p_b2}を取得する。ノード集合取得部110は、アプリケーション「c.exe」に対応する集合として、{p_c0,p_c1,p_c2}を取得する。ノード集合取得部110は、アプリケーション「d.exe」に対応する集合として、{p_d0,p_d1}を取得する。ノード集合取得部110は、アプリケーション「f.exe」に対応する集合として、{p_f0,p_f1,p_f2}を取得する。ノード集合取得部110は、アプリケーション「g.exe」に対応する集合として、{p_g0,p_g1}を取得する。
【0119】
次に、分類部320は、上述の各プロセスに対応する集合とその集合の要素の属性とに基づいて、各プロセスを分類し、
図14に示すような分類結果823(後述)を出力する。具体的には、第1に、分類部320は、各アプリケーションに対応する集合のベクトルに、その集合の要素の生存時間を要素として、追加する。第2に、分類部320は、その生存期間を追加したベクトルに基づいて、各プロセスを分類し、分類結果823を出力する。アプリケーション「a.exe」に対応する、その生存期間を追加したされたベクトルは、{p_a0,[t1,t2],p_a1,[t3,t4],p_a2,[t5,t6]}である。アプリケーション「b.exe」に対応する、その生存期間を追加したされたベクトルは、{p_b0,[t1,t4],p_b1,[t2,t5],p_b2,[t3,t6]}である。アプリケーション「c.exe」に対応する、その生存期間を追加したされたベクトルは、{p_c0,[0:00,*],p_c1,[1:00,*],p_c2,[2:00,*]}である。アプリケーション「d.exe」に対応する、その生存期間を追加したされたベクトルは、{p_d0,[t0+Δt,*],p_d1,[t2+Δt,*]}である。アプリケーション「f.exe」に対応する、その生存期間を追加したされたベクトルは、{p_f0,[t7,t9],p_f1,[t8,t10],p_f2,[t9,t11]}である。アプリケーション「g.exe」に対応する、その生存期間を追加したされたベクトルは、{p_g0,[t6,t8],p_g1,[t9,t11]}である。
【0120】
図14は、分類結果820の他の具体的な一例である分類結果823を示す図である。
図14に示すように、分類結果823の各レコードは、ロール識別子とノード識別子とを含む。
図14を参照すると、アプリケーション「a.exe」及びアプリケーション「g.exe」は、ロール「role1」に分類されている。アプリケーション「b.exe」及びアプリケーション「f.exe」は、ロール「role2」に分類されている。アプリケーション「c.exe」及びアプリケーション「h.exe」は、ロール「role3」に分類されている。アプリケーション「d.exe」は、ロール「role4」に分類されている。即ち、各アプリケーションは、以下のようなロールのそれぞれに分類されている。ロール「role1」は、「同時に1つだけ実行されるアプリケーションであるロール」である。ロール「role2」は、「同時に複数実行されるアプリケーションであるロール」である。ロール「role3」は、「決まった時間間隔で実行されるアプリケーションであるロール」である。ロール「role4」は、「initプロセスの開始ごとに決まって実行されるアプリケーションであるロール」である。
【0121】
以上が、本実施形態の動作の説明である。
【0122】
尚、本実施形態の変形例として、
図8に示す情報処理システム101が、情報処理システム100に替えて情報処理システム300を含むシステムとされてもよい。
【0123】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、より合目的的に、アプリケーションを分類することが可能になる点である。
【0124】
その理由は、分類部320が、アプリケーションから生成されたプロセスの生存期間の相対関係に基づいて、そのアプリケーションのそれぞれを複数のロールのいずれかに分類するからである。
【0125】
以上の各実施形態で得られる分類結果820を管理者に提示(可視化)することで、管理者のシステム管理を支援することができる。
【0126】
また、例えば以下のような分類結果820に基づいて、監視対象システムの異常を自動検知することができる。分類結果820が、システム管理者によって予め指定された内容と異なる。分類結果820が、あるノードがある特定のロールに分類されたことを示す。分類結果820が、あるノードが、あるとき、あるロールから別のロールに変化したことを示す。
【0127】
また、分類結果820に基づいて同一のロールの要素間で定常モデルを共有することで、定常モデルの精度を向上することができる。
【0128】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、複数個の任意のその構成要素が1個のモジュールとして実現されてよい。また、その構成要素の内の任意のひとつが複数のモジュールで実現されてもよい。また、その構成要素の内の任意のひとつがその構成要素の内の任意の他のひとつであってよい。また、その構成要素の内の任意のひとつの一部と、その構成要素の内の任意の他のひとつの一部とが重複してもよい。
【0129】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウエア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウエア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【0130】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、コンピュータが読み取り可能な非一時的記録媒体に記録され、コンピュータに提供される。そして、そのプログラムは、コンピュータの立ち上げ時などに、非一時的記録媒体からコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【0131】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
【0132】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生してよい。また、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複してもよい。
【0133】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で変更されてよい。
【0134】
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。