JP6582922B2 - グラフ処理プログラム、グラフ処理方法、および情報処理装置 - Google Patents

グラフ処理プログラム、グラフ処理方法、および情報処理装置 Download PDF

Info

Publication number
JP6582922B2
JP6582922B2 JP2015230573A JP2015230573A JP6582922B2 JP 6582922 B2 JP6582922 B2 JP 6582922B2 JP 2015230573 A JP2015230573 A JP 2015230573A JP 2015230573 A JP2015230573 A JP 2015230573A JP 6582922 B2 JP6582922 B2 JP 6582922B2
Authority
JP
Japan
Prior art keywords
nodes
graph
node
connection relationship
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015230573A
Other languages
English (en)
Other versions
JP2017097698A (ja
Inventor
弘治 丸橋
弘治 丸橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015230573A priority Critical patent/JP6582922B2/ja
Priority to US15/356,935 priority patent/US10186060B2/en
Publication of JP2017097698A publication Critical patent/JP2017097698A/ja
Application granted granted Critical
Publication of JP6582922B2 publication Critical patent/JP6582922B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Description

本発明は、グラフ処理プログラム、グラフ処理方法、および情報処理装置に関する。
コンピュータシステムでは、様々なデータ処理の結果が、ログとして記録される。ログの中には、2つの要素間の関係を示すログがある。例えばサーバ間の通信ログには、通信元と通信先との間で情報が受け渡されたことが示されている。また銀行の口座間の取引ログには、2つの口座間で取引が行われたことが示されている。2つの要素間の関係を示すログに基づいて、所定の期間内におけるシステム内での複数の要素が関連する処理を、グラフで表すことができる。グラフでは、例えばシステム内の要素がノードで表され、要素間の関連性が、要素に対応するノード間を接続するエッジで表される。
通信における攻撃や、取引における犯罪などの不正行為があったとき、不正行為の存在がグラフ中に、特徴的な部分グラフとして現れることがある。そこで、不正行為があった日のログに基づくグラフに高頻度で現れる部分グラフの探索が行われる。以下、複数のグラフに高頻度で現れる部分グラフを、多頻度グラフと呼ぶ。不正行為があった日の多頻度グラフを特定しておくことで、以後の、ログを用いて生成したグラフ内に同じ多頻度グラフが存在するとき、不正行為が行われた可能性が高いと判断できる。
多数のグラフからの多頻度グラフの探索技術としては、例えば列挙した小規模な多頻度グラフに、出現頻度が閾値以下になるまでノードを追加していき、より大きな多頻度グラフを探索する技術がある。また多頻度グラフを探索する方法として、隣接するノードのペアのうち頻度の高いペアを1ノードに統合する処理を繰り返し、多頻度グラフを抽出する方法もある。
特開2005−63277号公報 特開2014−225117号公報 Felipe Llinares-Lopez, Mahito Sugiyama, Laetitia Papaxanthos, Karsten M. Borgwardt, "Fast and Memory-Efficient Significant Pattern Mining via Permutation Testing" KDD '15 Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, August 2015, Pages 725-734.
しかし、従来の多頻度グラフの探索は、NP(Non-deterministic Polynomial time)完全であり、ノード数の増加に伴い組み合わせが爆発する。例えば、小規模な多頻度グラフにノードを追加していく手法では、ノードを追加するごとに、他の生成可能な部分グラフすべてと同型かどうかを判定することになる。このようなグラフの同型判定をする問題はNP完全であり、ノード数の増加に伴い組み合わせが爆発する。そのため、現実的には、数100ノード程度のグラフにしか適用できない。
ここで、元のグラフからサンプリングにより、例えば数100ノードの探索対象部分グラフを生成し、その探索対象部分グラフ内で多頻度グラフを探索する方法が考えられる。探索対象部分グラフ内で多頻度グラフであれば、その多頻度グラフは、探索対象部分グラフを拡大した場合にも多頻度グラフと判定される。そこで、小さい探索対象部分グラフで探索した多頻度グラフを、サイズを拡大した探索対象部分グラフにおける多頻度グラフの候補として利用することで、サイズを拡大しながら多頻度グラフを探索することができる。しかしながら、この場合においてもやはりNP完全性による組み合せ爆発が発生し、探索対象部分グラフのサイズを数100ノード以上まで拡大するのは困難である。
1つの側面では、本件は、多頻度グラフを効率的に抽出することを目的とする。
1つの案では、コンピュータに、以下の処理を実行させるグラフ処理プログラムが提供される。
コンピュータは、該グラフ処理プログラムに基づいて、まず、複数のグラフから、所定数のノードを含む複数の部分グラフを抽出する。次にコンピュータは、複数の部分グラフそれぞれを対象とし、対象の部分グラフに含まれる複数のノードに順番を設定し、該複数のノード間の接続関係、および該複数のノードのいずれかと接続関係を有する隣接ノードと該複数のノードとの接続関係を表す接続関係行列を生成する。さらにコンピュータは、複数の部分グラフごとの複数の接続関係行列に基づいて、複数の部分グラフそれぞれのうちでの順番が同じノードの接続関係の特徴を示す照合行列を生成する。そしてコンピュータは、複数の部分グラフそれぞれを操作対象とし、操作対象の部分グラフに含まれる複数のノード間の接続関係を示す部分行列と照合行列との類似度が高くなるように、該複数のノード間の順番の入れ替え、または該複数のノードの隣接ノードと該複数のノードとの入れ替え操作を行う。
1態様によれば、多頻度グラフを効率的に抽出することができる。
第1の実施の形態に係る情報処理装置の構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いる監視装置のハードウェアの一構成例を示す図である。 不正の発生の有無によるグラフの違いを示す図である。 照合パタンの抽出例を示す図である。 監視装置の機能を示すブロック図である。 ログの一例を示す図である。 グラフ情報の一例を示す図である。 照合パタンの一例を示す図である。 監視装置における処理の手順を示すフローチャートである。 部分グラフのノード入れ替えと照合パタンの接続関係の存在確率再計算との一例を示す図である。 行列を用いた部分グラフ抽出例を示す図である。 照合パタンの生成例を示す図である。 類似度の計算例を示す図である。 ベクトル間の類似度の計算方法を示す図である。 ノードの入れ替え例を示す図である。 照合パタン生成処理の手順の一例を示すフローチャートである。 ノードの順番を固定しても多頻度グラフの探索が容易な場合の例を示す図である。 ノードの順番を固定すると多頻度グラフの探索が困難になる場合の例を示す図である。 ノード対応確率表と接続関係の期待値との一例を示す図である。 部分グラフの接続関係期待値の算出例を示す図である。 照合パタンの生成例を示す図である。 類似度の計算例を示す図である。 ノード対応確率の補正例を示す図である。 第3の実施の形態における照合パタン生成処理の手順の一例を示すフローチャートである。 既存の照合パタンを流用する例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
図1は、第1の実施の形態に係る情報処理装置の構成例を示す図である。第1の実施の形態に係る情報処理装置10は、記憶部11と演算部12とを有する。
記憶部11は、複数のグラフ1a,1b,・・・を記憶する。グラフ1a,1b,・・・は、例えば他のコンピュータシステムにおける情報処理のログに基づいて、情報処理の実施状況をグラフ化したものである。例えばグラフ1a,1b,・・・によって、サーバ間の通信発生状況や、銀行の口座間の送金発生状況などが表されている。
演算部12は、グラフ1a,1b,・・・を処理し、グラフ1a,1b,・・・に含まれる多頻度グラフ6を探索する。具体的には、演算部12は、以下の処理を行う。
演算部12は、まず、複数のグラフ1a,1b,・・・から、所定数のノードを含む複数の部分グラフ2a,2b,・・・を抽出する。例えば演算部12は、複数のグラフ1a,1b,・・・それぞれから、1または複数の部分グラフ2a,2b,・・・を、サンプリングによって抽出する。
次に演算部12は、複数の部分グラフ2a,2b,・・・それぞれを、接続関係行列の対象とし、対象の部分グラフに含まれる複数のノードに順番を設定する。さらに演算部12は、対象の部分グラフ内の複数のノード間の接続関係、および複数のノードのいずれかと接続関係を有する隣接ノードと該複数のノードとの接続関係を表す接続関係行列3a,3b,・・・を生成する。
接続関係行列3a,3b,・・・の各行には、部分グラフ2a,2b,・・・の抽出元のグラフ1a,1b,・・・のノードが対応付けられている。接続関係行列3a,3b,・・・の各列には、部分グラフ2a,2b,・・・内での順番が設定されている。図1の例では、「Q1」が1番目、「Q2」が2番目、「Q3」が3番目である。接続関係行列3a,3b,・・・内の行と列との交差する位置に、列に対応するノードが、行に対応する順番の部分グラフ内のノードと接続関係を有するか否かを示す値が設定されている。例えば接続関係があれば「1」が設定され、接続関係がなければ「0」が設定される。
接続関係行列3a,3b,・・・の生成後、演算部12は、複数の部分グラフ2a,2b,・・・ごとの複数の接続関係行列に基づいて、複数の部分グラフ2a,2b,・・・それぞれのうちでの順番が同じノードの接続関係の特徴を示す照合行列4aを生成する。例えば演算部12は、複数の部分グラフ2a,2b,・・・それぞれのうちでの順番が同じノードの平均的な接続関係を、その順番のノードの接続関係の特徴とする。例えば各接続関係行列3a,3b,・・・それぞれにおいて、部分グラフ2a,2b,・・・の1番目(Q1)のノードの行に設定されている成分ごとの平均値が、照合行列4aの1番目(Q1)の行の成分として設定される。
そして演算部12は、複数の部分グラフ2a,2b,・・・それぞれを操作対象とし、操作対象の部分グラフ2a,2b,・・・に含まれる複数のノード間の接続関係を示す部分行列と照合行列4aとの類似度が高くなるように、ノードの入れ替え操作を行う。ノードの入れ替えは、例えば、部分グラフ2a,2b,・・・に含まれる複数のノード間の順番の入れ替え、または該複数のノードの隣接ノードと該複数のノードとの入れ替えである。
入れ替えを行う場合、例えば演算部12は、接続関係行列3a,3b,・・・の各行の複数の成分と、照合行列4aの各行の成分との類似度を計算する。類似度としては、例えばベクトル間のコサイン類似度を用いることができる。そして演算部12は、例えば部分グラフ2a内の1番目(P1)のノードに対応する接続関係行列3aの行と、照合行列4a内の1番目(Q1)の行との類似度よりも、照合行列4a内の1番目(Q1)の行との類似度が高い他の行の有無を判断する。類似度が高い行があれば、その行に対応するノードと、部分グラフ2a内の1番目(Q1)のノードとを入れ替える。この場合、入れ替えによって新たに部分グラフ2aに含まれることとなったノードの順番は1番目となる。図1の例では、部分グラフ2a内の1番目のノード「P1」が、グラフ1a内のノード「P4」と入れ替えられている。
演算部12は、いずれかの部分グラフ2a,2b,・・・においてノードの入れ替え操作が行われると、接続関係行列の生成、照合行列の生成、および入れ替え操作を再度実行する。すると、再度の接続関係行列の生成により、新たな接続関係行列5a,5b,・・・が得られる。再度の照合行列の生成により、接続関係行列5a,5b,・・・に基づいて、新たな照合行列4bが得られる。このような処理の再実行は、例えば入れ替え操作において類似度が高くなるような入れ替えが存在しなくなるまで繰り返される。
演算部12は、入れ替え操作において類似度が高くなるような入れ替えが存在しなくなったとき、最後に生成した照合行列4bを出力する。出力された照合行列4bは、多頻度グラフ6の接続関係を表している。すなわち、入れ替え操作において類似度が高くなるような入れ替えが存在しなくなったとき、その時点での部分グラフ2a,2b,・・・は、いずれもノード間の接続関係が照合行列4bと類似している。すると、照合行列4bと類似する接続関係を有する部分グラフが多数存在することとなり、照合行列4bで接続関係が表されたグラフは、多頻度グラフ6である。
このように情報処理装置10によれば、部分グラフ2a,2b,・・・のノードに順番を設定し、同じ順番のノードの接続関係に基づいて、照合行列4aを生成するため、ノード間の順番の入れ替えを考慮せずに照合行列4aを生成できる。これにより、部分グラフ2a,2b,・・・の平均的な接続関係を効率的に求めることができる。しかも、部分グラフ2a,2b,・・・内のノードが、部分グラフ2a,2b,・・・内の他のノード、または部分グラフ2a,2b,・・・の隣接ノードと入れ替えられる。これにより、最初の部分グラフ2a,2b,・・・の抽出時には、多頻度グラフ6と異なる接続関係を有していても、複数の部分グラフ2a,2b,・・・の接続関係を徐々に多頻度グラフ6に近づけていくことができる。その結果、多頻度グラフ6を効率的に探索可能となる。
なお、このような多頻度グラフ6の探索は、例えば新たなグラフが記憶部11に追加格納されるごとに実行される。その場合、演算部12は、照合行列4bの出力後に新たなグラフが入力されると、新たなグラフから新たな部分グラフを抽出し、新たな部分グラフに対して、出力時の照合行列4bを用いて、入れ替え操作を実行する。これにより、新たな部分グラフを多頻度グラフ6に近づけるためのノードの入れ替えを容易に行うことができる。
また、演算部12は、各ノードが部分グラフ2a,2b,・・・に含まれるかどうかを確率的に表すことで、多頻度グラフの検出漏れを抑止することもできる。
例えば演算部12は、複数のグラフ1a,1b,・・・それぞれについて、部分グラフ2a,2b,・・・の構成ノードとして所定数のノードを順番に選択する場合の各ノードの選択確率を示す確率行列を生成する。選択確率は、例えば0〜1の範囲のランダムな値である。次に演算部12は、複数のグラフ1a,1b,・・・それぞれを第1期待値行列生成対象とする。そして演算部12は、第1期待値行列生成対象のグラフの確率行列に示された確率で該グラフから所定数のノードが順番に選択されるときに、該グラフ内の各ノードの、選択されたノードとの接続関係の有無の期待値を示す第1期待値行列を生成する。
また演算部12は、複数のグラフ1a,1b,・・・それぞれを第2期待値行列生成対象とする。そして演算部12は、第2期待値行列生成対象のグラフの確率行列に示された確率で、該グラフから部分グラフ2a,2b,・・・の構成ノードとして所定数のノードが順番に選択されるときに、選択されたノード間の接続関係の有無の期待値を示す第2期待値行列を生成する。
さらに、演算部12は、複数のグラフ1a,1b,・・・それぞれの複数の第2期待値行列に基づいて、複数のグラフそれぞれから抽出される複数の部分グラフ2a,2b,・・・における、選択される順番が同じノード間の接続関係の特徴を示す照合行列を生成する。そして、演算部12は、複数のグラフ1a,1b,・・・それぞれを補正対象とし、補正対象のグラフの第1期待値行列と照合行列との類似度が高くなるように、該グラフの確率行列に示される選択確率を補正する。
演算部12は、例えば選択確率の補正量が閾値以下となるまで、第1期待値行列の生成、第2期待値行列を生成、照合行列の生成、および選択確率の補正を繰り返す。そして演算部12は、選択確率の補正量が閾値以下となったときの照合行列で表されている接続関係のグラフを、多頻度グラフとする。
このように部分グラフに含まれるノードを確率的に表すことで、グラフ1a,1b,・・・内のすべてのノードを考慮にいれた探索を行うことができ、多頻度グラフの検出漏れを抑止できる。
なお、演算部12は、例えば情報処理装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置により実現することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、第1の実施の形態に示したような多頻度グラフ探索技術を利用して、コンピュータシステムに対して行われた不正行為を容易に検知できるようにしたものである。
図2は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、例えば、多数のサーバ31,32,33,・・・が、ネットワーク20を介して接続されている。またサーバ31,32,33,・・・は、互いに連携して様々な処理を実行する。そして、各サーバ31,32,33,・・・は、実行した処理内容をログとして記録する。
またネットワーク20には、監視装置100が接続されている。監視装置100は、サーバ31,32,33,・・・からログを収集し、ログ内容からサーバ31,32,33,・・・で実行された処理に、不正な処理が含まれていないかどうかを監視する。例えば監視装置100は、サーバ31,32,33,・・・間の通信ログに基づいて、不正な取引が行われた可能性の有無を判断する。またサーバ31,32,33,・・・が銀行の取引システムであれば、監視装置100は、口座間の取引ログに基づいて、不正な取引が行われた可能性の有無を判断することもできる。
図3は、第2の実施の形態に用いる監視装置のハードウェアの一構成例を示す図である。監視装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、監視装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記憶媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、監視装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の監視装置100の処理機能を実現することができる。なお、サーバ31,32,33,・・・も、監視装置100と同様のハードウェアにより実現することができる。また第1の実施の形態に示した情報処理装置10も、監視装置100と同様のハードウェアにより実現することができる。
監視装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。監視装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、監視装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また監視装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、グラフを用いた不正検出処理の概要について説明する。
図4は、不正の発生の有無によるグラフの違いを示す図である。例えば、監視装置100が、1日ごとのログから、その日の取引パタンを表すグラフ41,42,43,・・・を生成する。また1日ごとに、その日に不正な取引があったかどうかについて、日報として報告されているものとする。監視装置100は、生成したグラフ41,42,43,・・・に、日報で示される内容を、ラベル41a,42a,43a,・・・として関連付ける。
このとき、「不正発生」のラベル41a,43aが付与されたグラフ41,43には、共通の部分グラフ41b,43bが高頻度で含まれていることがある。例えばグラフ41,42,43,・・・が、サーバ間の通信ログから生成されていれば、「不正発生」のラベル41a,43aが付与されたグラフ41,43は、DDoS攻撃や標的型攻撃などに特有の通信パタン(数十件程度)を含む場合がある。また例えばグラフ41,42,43,・・・が、銀行の取引ログから生成されていれば、「不正発生」のラベル41a,43aが付与されたグラフ41,43は、マネーロンダリングや振込詐欺に特有の取引パタン(数十件程度)を含む場合がある。このように、「不正発生」のラベル41a,43aが付与されたグラフ41,43内に高頻度で含まれる部分グラフ41b,43bは多頻度グラフと呼ばれ、不正が発生した日のグラフ41,43の特徴を表している。
そこで、監視装置100は、このような部分グラフ41b,43bを用いて、不正の検出用の多頻度グラフを探索する。
図5は、照合パタンの抽出例を示す図である。図5の例では、不正が発生した日のグラフ41,43,44,・・・から多頻度グラフを探索し、見つかった多頻度グラフを照合パタン51としている。このようにして生成した照合パタン51を用いれば、不正の発生が報告されていない日において、不正が発生している可能性を評価できる。例えば、監視装置100は、不正の発生が報告されていない日であっても、その日の取引パタンを示すグラフに照合パタンに対応する部分グラフが所定数以上含まれていれば、その日に不正な取引が行われた可能性があると判定する。
ここで、グラフ41,42,43,・・・がサーバ間の通信ログから生成されている場合、各グラフ41,42,43,・・・のノードは、例えばサーバのIPアドレスに対応する。またノード間を接続するエッジは、サーバ間で通信が発生したことを表している。またグラフ41,42,43,・・・が銀行の取引ログから生成されている場合、各グラフ41,42,43,・・・のノードは、例えば銀行に開設されている各口座の口座番号に対応する。またノード間を接続するエッジは、口座間でのお金の振り込みが行われたことを表している。
例えば銀行の取引における不正の検出を行う場合、生成するグラフのノード数は10,000以上となる。この場合、従来の多頻度グラフ探索手法では、計算量が過大となり、多頻度グラフを探索できない。そこで第2の実施の形態では、監視装置100は、少ない計算量で多頻度グラフの抽出を可能とする。
図6は、監視装置の機能を示すブロック図である。監視装置100は、記憶部110、ログ収集部120、グラフ作成部130、照合パタン生成部140、および照合部150を有する。
記憶部110は、ログ111a,111b,・・・、グラフ情報112a,112b,・・・、および照合パタン113a,113b,・・・を記憶する。ログ111a,111b,・・・は、サーバ31,32,33,・・・における、日々の処理の履歴を表す情報である。グラフ情報112a,112b,・・・は、日々の取引パタンまたは通信パタンを示すグラフの構造を示す情報である。照合パタン113a,113b,・・・は、不正検出用のグラフである。記憶部110としては、例えばメモリ102またはストレージ装置103の記憶領域の一部が使用される。
ログ収集部120は、各サーバ31,32,33,・・・からログを収集し、記憶部110に格納する。例えばログ収集部120は、毎日の所定の時刻に、一日分のログをサーバ31,32,33,・・・から収集する。
グラフ作成部130は、記憶部110に格納されたログ111a,111b,・・・から、日付ごとのグラフを作成する。例えばグラフ作成部130は、記憶部110から、同じ日に取得されたログの集合を取得する。グラフ作成部130は、取得したログから、グラフのノードとする要素を抽出する。ノードとする要素は、例えば、IPアドレスや口座番号である。グラフ作成部130は、抽出した要素に対応するノードを作成する。
次にグラフ作成部130は、ノードとなる要素間の関連性の有無を、ログを解析して判断する。例えばグラフ作成部130は、ノードがIPアドレスであれば、2つのノードそれぞれのIPアドレスで示されたサーバ間で通信が行われたことを示す情報がログに含まれていれば、そのノードに対応する要素間に関連性があると判断する。またグラフ作成部130は、ノードが口座番号であれば、2つのノードそれぞれの口座番号で示された口座間でお金の振り込みが行われたことを示す情報がログに含まれていれば、そのノードに対応する要素間に関連性があると判断する。2つの要素間に関連性がある場合、グラフ作成部130は、それらの要素それぞれに対応するノード間を接続するエッジを作成する。
このように、ノードとエッジを作成することで、グラフが作成される。グラフ作成部130は、作成したグラフを記憶部110に格納する。なお、記憶部110に格納されたグラフ情報112a,112b,・・・には、監視装置100の運用者による入力により、ラベルを設定することができる。例えば不正の有無を識別するラベルが設定される。
照合パタン生成部140は、同じラベルが付与されたグラフに基づいて、照合パタンを生成する。例えば照合パタン生成部140は、「不正発生」のグラフに共通に発生する多頻度グラフを探索し、その多頻度グラフを照合パタンとする。照合パタン生成部140は、生成した照合パタンを、記憶部110に格納する。
照合部150は、グラフ作成部130によって新たに作成されたグラフを、照合パタン113a,113b,・・・と照合する。そして照合部150は、照合結果を出力する。例えば照合パタン113a,113b,・・・が、不正が発生した日のグラフの特徴を示しているものとする。この場合、照合部150は、照合対象のグラフ内に、照合パタン113a,113b,・・・に対応する部分グラフを所定数以上検出した場合、不正が行われた可能性を示すメッセージをモニタ21に表示する。
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、記憶部110に格納され情報について詳細に説明する。
図7は、ログの一例を示す図である。ログ111a,111b,・・・には、例えば、取得元サーバのサーバ名、取得日、および時刻情報が付与されたログメッセージが格納される。銀行取引のログであれば、ログメッセージには、振り込み元口座番号、振り込み先口座番号、振り込み金額などが含まれる。
図8は、グラフ情報の一例を示す図である。グラフ情報112a,112b,・・・には、そのグラフ情報の生成元となったログの取得日を示す日付と、その日に不正があったか否かを示すラベルとが含まれる。そしてグラフ情報112a,112b,・・・には、行列によって、グラフの構造が定義されている。行列の各行および各列には、グラフ内のノードが対応付けられている。図8の例では、グラフ内に識別子「P1」〜「P6」の6つのノードが存在する。特定の行と列との交差する位置に、行に示されるノードと列に示されるノードとの間の接続関係(エッジ)の有無が設定されている。例えば接続関係がある場合「1」が設定され、接続関係がない場合「0」が設定されている。このようなグラフ情報112a,112b,・・・に基づいて、例えば日付ごとのグラフが定義される。
図9は、照合パタンの一例を示す図である。照合パタン113a,113b,・・・には、その照合パタン113a,113b,・・・の生成元になったグラフ情報と同じラベルが設定されている。そして照合パタン113a,113b,・・・には、ノード間の接続関係の存在割合が、行列で表されている。行列の各行および各列には、照合パタンに含まれるノードが対応付けられている。図9の例では、照合パタン内に識別子「Q1」〜「Q3」の3つのノードが存在する。特定の行と列との交差する位置に、行に示されるノードと列に示されるノードとの間の接続関係の存在確率が設定される。
以上のような監視装置100により、照合パタン生成処理と、照合パタンを用いた照合処理が行われる。以下、監視装置100で実行させる処理を詳細に説明する。
図10は、監視装置における処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS101]ログ収集部120は、サーバ31,32,33,・・・からログ111a,111b,・・・を収集する。ログ収集部120は、収集したログ111a,111b,・・・を、記憶部110に格納する。
[ステップS102]グラフ作成部130は、所定期間(例えば1日)ごとに、その期間内のログに示される処理パタン(サーバ間の通信パタン、または銀行口座間の取引パタン)を表すグラフを作成する。グラフ作成部130は、作成したグラフを表すグラフ情報112a,112b,・・・を、記憶部110に格納する。
[ステップS103]照合パタン生成部140は、監視装置100の動作モードが学習モードか否かを判断する。動作モードには、例えば学習モードと不正検出モードとがある。学習モードは、生成したグラフを用いて照合パタンを生成するモードである。不正検出モードは、生成したグラフを、既に生成されている照合パタンと照合し、不正が行われた可能性があるか否かを判断するモードである。動作モードは、監視装置100の管理者によって、予め設定されている。
動作モードが学習モードであれば、処理がステップS104に進められる。動作モードが不正検出モードであれば、処理がステップS109に進められる。
[ステップS104]照合パタン生成部140は、管理者からの入力に基づいて、生成したグラフ情報112a,112b,・・・に、不正の有無を示すラベルを付与する。
[ステップS105]照合パタン生成部140は、照合パタン生成条件を取得する。例えば照合パタン生成部140は、管理者によって入力された照合パタン生成条件を取得する。照合パタン生成条件には、照合パタンの生成対象とするラベル、生成する照合パタンに含まれるノード数、生成する照合パタン数などが含まれる。照合パタン生成条件において、例えばノード数が3個の照合パタンを、複数生成するように指定することもできる。また、照合パタン生成条件において、例えばノード数が異なる複数の照合パタンを生成するように指定することもできる。
[ステップS106]照合パタン生成部140は、照合パタン生成条件に従った照合パタンの生成処理を実行する。照合パタン生成処理の詳細は後述する(図17参照)。
[ステップS107]照合パタン生成部140は、生成した照合パタンにラベルを付けて記憶部110に格納する。この際、照合パタン生成部140は、照合パタンの生成に用いられた部分グラフを示す部分グラフ情報を記憶部110に格納することもできる。
[ステップS108]照合パタン生成部140は、照合パタン生成条件において生成することが要求されている全照合パタンを生成したか否かを判断する。未生成の照合パタンがあれば、処理がステップS106に進められる。すべての照合パタンの生成が完了していれば、処理が終了する。
[ステップS109]動作モードが不正検出モードの場合、照合部150は、生成されたグラフと、「不正発生」のラベルが付与された照合パタンとを照合する。例えば照合部150は、グラフ内から、「不正発生」のラベルが付与された照合パタンのいずれかとの類似度が所定値以内の部分グラフを探索する。なお、類似度の計算方法としては、例えばコサイン類似度を用いることができる。
[ステップS110]照合部150は、照合結果から、照合対象のグラフの生成元となったログが取得された日に、不正が行われた可能性があるか否かを判断する。例えば、照合部150は、照合パタンに類似する部分グラフが所定数以上存在する場合、不正が行われた可能性があると判断する。不正の可能性がある場合、処理がステップS111に進められる。不正の可能性がなければ、処理が終了する。
[ステップS111]照合部150は、不正が行われた可能性がある旨のメッセージを出力し、処理を終了する。
このようにして、監視装置100により、照合パタンの生成と照合パタンを用いた不正検出が行われる。しかも監視装置100は、作成されたグラフのノード数が例えば10,000個以上であっても、実用的な時間内で照合パタンを生成できる。
監視装置100の照合パタン生成部140は、複数のグラフから効率的に多頻度グラフを特定し、その多頻度グラフを照合パタンとする。そのために照合パタン生成部140は、複数のグラフそれぞれからサンプリングにより、生成する照合パタンと同じノード数の部分グラフを複数抽出する。照合パタン生成部140は、抽出した部分グラフの並び順を固定して、平均的な接続関係を表すグラフを、照合パタンの初期値として生成する。そして、照合パタン生成部140は、部分グラフが照合パタンに類似するように、複数の部分グラフに属するノードの入れ替えと、照合パタンにおける接続関係の存在確率の再計算とを繰り返す。
図11は、部分グラフのノード入れ替えと照合パタンの接続関係の存在確率再計算との一例を示す図である。図11には、ノード数が「4」の照合パタンを生成する場合の例が示されている。グラフ52,53,・・・それぞれからは、生成する照合パタン51aと同じノード数の部分グラフが抽出される。例えばグラフ52とグラフ53とから、部分グラフ52a,53aが抽出されている。部分グラフ52a,53aに含まれるノードには、並び順が設定されている。図11において、ノードを示す丸の中に、並び順を示す番号が示されている。なお、1つのグラフから複数の部分グラフを抽出してもよい。
グラフ52,53,・・・それぞれから抽出された部分グラフに基づいて照合パタン51aが生成される。照合パタン51aに含まれるノードにも、並び順が存在する。例えばノードの識別子「Q1」〜「Q4」に含まれる数字が並び順を示す。照合パタン51aのノード間を接続するエッジには、そのエッジの両端のノードに対応する部分グラフ内のノード間に接続関係が存在する確率が設定されている。例えば識別子「Q1」のノードと識別子「Q2」のノードとの間のエッジには「0.6」の確率が設定されている。これは部分グラフの並び順で1番目のノードと2番目のノードとの間には、60%の確率で接続関係が存在することを表している。
照合パタン生成部140は、初期状態の照合パタン51aを生成すると、各部分グラフ52a,53aについて、照合パタン51aと類似するように、ノードの入れ替えを行う。例えば照合パタン生成部140は、部分グラフ52a,53a内の1つのノードを選択し、選択したノードを他のノードと入れ替えたときに、部分グラフ52a,53aと照合パタン51aとの類似度が向上するか否かを判断する。そしてノードを入れ替えることで部分グラフと照合パタン51aとの類似度が向上するのであれば、照合パタン生成部140は、部分グラフ内のノードの入れ替えを行う。なお入れ替えの対象は、例えば、選択したノードと同じ部分グラフ内の他のノード、またはその部分グラフ内のいずれか1つのノードと接続関係を有する部分グラフ外のノードである。なお、入れ替えることで類似度が向上するノードが複数ある場合、例えば、最も類似度が高くなるノードとの入れ替えが行われる。
例えば部分グラフ53aの1番目のノード53−1が選択されたものとする。このノード53−1と、部分グラフ53a内の他のノードとの接続関係をベクトルで表すと、(0,1,0)となる。このベクトルは、2番目のノードとの接続関係がなく、3番目のノードとの接続関係があり、4番目のノードとの接続関係がないことを表している。
照合パタン51aにおける1番目のノードは、識別子「Q1」のノードである。このノードと、照合パタン51a内の他のノードとの接続関係をベクトルで表すと、(0.6,0.6,0.0)である。このベクトルは、2番目のノードとの接続関係の存在確率が「0.6」であり、3番目のノードとの接続関係の存在確率が「0.6」であり、4番目のノードとの接続関係の存在確率が「0.0」であることを表している。
部分グラフ53aの1番目のノード53−1のベクトルと、照合パタン51aの1番目のノードのベクトルとの類似度により、部分グラフ53aの1番目のノードが照合パタン51aの1番目のノードに類似する度合いが示される。ベクトル間の類似度は、例えばコサイン類似度が用いられる。
このとき照合パタン生成部140は、部分グラフ53aにおける現在の1番目のノード53−1を、2番目のノードと3番目のノードとの両方と接続関係を有する部分グラフ53a外のノード53−2と入れ替えたときに、類似度が向上するかを検討する。入れ替え検討対象のノード53−2が部分グラフ53aの1番目のノードとなった場合、部分グラフ53a内の他のノードとの接続関係を示すベクトルは、(1,1,0)となる。
ノード53−1のベクトル(0,1,0)と、ノード53−2のベクトル(1,1,0)とにおいて、異なるのは最初の成分の値(2番目のノードとの接続関係の有無)である。照合パタン51aの1番目のノードのベクトルは(0.6,0.6,0.0)である。最初の成分の値は「0.6」であり、ノード53−2のベクトル(1,1,0)の方が値が近い。するとノード53−2の方が、より類似していると判断できる。この場合、照合パタン生成部140は、ノード53−1に代えてノード53−2を1番目のノードとすることで、部分グラフ53aを更新する。
同様に他の部分グラフ52aについても、照合パタン51aとより類似するように、ノードの入れ替えが行われる。部分グラフにおいてノードの入れ替えが行われると、照合パタン51aにおけるノード間の接続関係の存在確率が再計算される。図11の例では、部分グラフ52,53の1番目のノードが、2番目と3番目のノードと接続関係を有し、4番目のノードと接続関係を有していないノードに入れ替えられる。このようなノードの入れ替えを繰り返すと、照合パタン51aにおいて、1番目のノードと2番目のノードとの接続関係の存在確率はほぼ「1」となり、1番目のノードと3番目のノードとの接続関係の存在確率もほぼ「1」となる。
このように、照合パタン生成部140は、部分グラフ52a,53aの各ノードについて、部分グラフ52a,53aの平均的な接続パタン(照合パタン)の並び順が同じノードと比較したときの接続関係の類似度が向上するようにノードの入れ替えを繰り返す。これにより、照合パタン51aにおけるノード間の接続関係の存在確率は、「0」または「1」に近づいていく。そして、類似度を向上させることができる入れ替え対象のノードが存在しなくなったときの照合パタン51aが、最終的な照合パタン51aとして記憶部110に格納される。
照合パタン生成部140は、部分グラフ52a,53a内のノードの入れ替えと照合パタン51aのノード間の接続関係の存在確率の再計算とを、例えば行列を用いて行う。その場合、部分グラフ52a,53aも行列で表される。
図12は、行列を用いた部分グラフ抽出例を示す図である。グラフ54は、記憶部110内に、ノード間の接続関係を行列で表したグラフ情報55で保存される。照合パタン生成部140は、グラフ54から部分グラフ54aを抽出する。そして照合パタン生成部140は、抽出した部分グラフ54a内のノードに順番を設定し、各ノードと照合パタンとのノード間の対応付けを行う。図12の例では、部分グラフ54aの識別子「P1」のノードが1番、識別子「P2」のノードが2番、識別子「P3」のノードが3番となるように、ノードの順番が設定されている。
照合パタン生成部140は、各部分グラフ54aに含まれるノードと、それらのノードの順番とに基づいて、ノード対応表56を作成する。ノード対応表56では、各行にグラフ54内のノードの識別子が設定され、各列に照合パタンの識別子が設定されている。そして、行と列との交差する位置に、対応関係の有無を示す値が設定されている。図12の例では、対応関係がある場合「1」、対応関係がない場合「0」が設定される。
例えばノード対応表56では、部分グラフ54aの1番目のノードの識別子「P1」が設定された行と、照合パタンの1番目のノードの識別子「Q1」が設定された列が交差する位置に「1」が設定されている。部分グラフ54aの2番目のノードの識別子「P2」が設定された行と、照合パタンの2番目のノードの識別子「Q2」が設定された列が交差する位置に「1」が設定されている。部分グラフ54aの3番目のノードの識別子「P3」が設定された行と、照合パタンの3番目のノードの識別子「Q3」が設定された列が交差する位置に「1」が設定されている。他の位置には「0」が設定されている。
照合パタン生成部140は、ノード対応表56に基づいて、部分グラフ54aと照合パタンとのノード間の対応関係、および部分グラフ54aのノード間の接続関係の有無を示す部分グラフ情報57を生成する。部分グラフ情報57の各行と各列とに、部分グラフ54aに含まれるノードの識別子、およびそのノードに対応する照合パタン内のノードの識別子が設定されている。そして部分グラフ情報57の行と列とが交差する位置に、その行に対応する部分グラフ54a内のノードと、その列に対応する部分グラフ54a内のノードとの接続関係の有無を示す値が設定されている。例えば接続関係があれば「1」が設定され、接続関係がなければ「0」が設定される。
図12に示したような部分グラフ情報が、照合パタン生成条件で示される対象ラベルを有するすべてのグラフから抽出された部分グラフごとに生成される。そして複数の部分グラフ情報に基づいて、照合パタンが生成される。
図13は、照合パタンの生成例を示す図である。例えばラベル「不正発生」の複数のグラフ52,53,・・・それぞれから、部分グラフ52a,52b,・・・,53a,53b,・・・が抽出される。抽出された部分グラフ内のノードに順番が設定され、部分グラフそれぞれに対応する部分グラフ情報57a,57b,・・・が生成される。複数の部分グラフ情報57a,57b,・・・それぞれの同じ位置に設定されるノード間の接続関係の値の平均値が、照合パタン58の対応する位置に設定される。
照合パタン58が生成されると、照合パタン生成部140は、グラフ情報55とノード対応表56とに基づいて生成された接続関係表と照合パタン58とを比較し、元のグラフに含まれる各ノードと、照合パタン58に含まれる各ノードとの類似度を計算する。
図14は、類似度の計算例を示す図である。グラフ情報55から、ノード対応表56において、照合パタン58のノードに対応付けられているノード(P1,P2,P3)の列が抽出される。そして抽出された列に、照合パタン58に対応するノードの識別子(Q1,Q2,Q3)を設定した接続関係表59が生成される。
そして接続関係表59の各行と照合パタン58の各行との、ベクトルの類似度が計算される。算出された類似度が、類似度表60に設定される。なお、図14の例では、グラフ情報55に示されるノードのうち、識別子「P5」と「P6」のノードは、現在の部分グラフからの入れ替え対象外である。すなわち、これらのノードは、部分グラフに含まれるいずれのノードに対しても、接続関係を有していない。そこで、識別子「P5」と「P6」のノードは、類似度の計算対象から除外されている。
なお、2つのベクトル間の類似度は、例えばコサイン類似度によって計算される。
図15は、ベクトル間の類似度の計算方法を示す図である。例えば、照合パタン58の識別子「Q1」のノードと、部分グラフの識別子「P4」のノードとの類似度を計算する場合を考える。
照合パタン58の識別子「Q1」のノードの、他のノードとの接続関係を示すベクトルは、ベクトルv1=(v11,v12,・・・)である。また接続関係表59に基づいて、部分グラフの識別子「P4」のノードの、識別子「Q1」のノード以外のノードとの接続関係を示すベクトルv2=(v21,v22,・・・)が得られる。これらの2つのベクトルの類似度は、以下の式で表される。
類似度=v1・v2/(||v1||×||v2||) ・・・(1)
式(1)において、「・」はベクトルの内積であり、「v1・v2」は以下の式で表される。
1・v2=v11×v21+v12×v22+... ・・・(2)
また||v1||と||v2||は、それぞれベクトルの長さであり、以下の式で表される。
||v1||=(v11 2+v12 2+...)1/2 ・・・(3)
||v2||=(v21 2+v22 2+...)1/2 ・・・(4)
ただし、||v1||=0または||v2||=0の場合、類似度は未定義となる。||v1||=0または||v2||=0となるのは、対応するノードが他のノードとの接続関係を有していない場合である。
類似度の計算結果が設定された類似度表60に基づいて、部分グラフ内の各ノードと、他のノードとの入れ替えの適否が判断できる。
図16は、ノードの入れ替え例を示す図である。例えば照合パタン58の識別子「Q1」のノードに対応する部分グラフ54aの識別子「P1」のノードの、他のノードとの入れ替えの適否を検討する。図16に示す類似度表60によれば、識別子「P1」のノードの、照合パタン58の識別子「Q1」のノードとの間の類似度は、「0.8」である。それに対して、識別子「P4」のノードの、照合パタン58の識別子「Q1」のノードとの間の類似度は、「1.0」である。すると、識別子「P1」のノードを識別子「P4」のノードと入れ替えた方が、照合パタン58の識別子「Q1」のノードとの間の類似度が高くなる。
そこで、照合パタン生成部140は、部分グラフ54aの1番目のノードを、識別子「P1」のノードから、識別子「P4」のノードに入れ替える。具体的には、照合パタン生成部140は、ノード対応表56の「P1」行「Q1」列の値を「0」に変更し、「P4」行「Q1」列の値を「1」に変更する。その結果、部分グラフ54aに含まれるノードは、識別子「P4」、「P2」、「P3」のノードとなる。これに応じて、部分グラフ情報57aや接続関係表59の内容も更新される。
図13に示したように、照合パタン58に示されるノード間の接続関係の存在確率は、部分グラフ情報57a,57b,・・・に基づいて算出される。そのため、部分グラフ情報57a,57b,・・・のうちの1つでも接続関係を示す値が変更されれば、照合パタン58におけるノード間の接続関係の存在確率も再計算される。存在確率が再計算されると、図14に示したような、部分グラフの各ノードと照合パタン58の各ノードとの類似度も再計算される。
このような、部分グラフのノードの入れ替えと照合パタン58の更新とを交互に行うことで、複数の部分グラフが同じ接続関係に近づいていき、照合パタン58におけるノード間の接続関係の存在確率は、「0」または「1」に近づく。そして、類似度を向上させるような部分グラフのノードの入れ替えが存在しなくなったとき、照合パタン58の内容が確定する。
このような照合パタン生成処理の手順を以下に示す。
図17は、照合パタン生成処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS121]照合パタン生成部140は、所定のラベルが設定された複数のノードそれぞれからのランダムサンプリングにより、複数の部分グラフを生成する。
[ステップS122]照合パタン生成部140は、複数の部分グラフに基づいて、照合パタンを算出する。
[ステップS123]照合パタン生成部140は、部分グラフを1つ選択する。
[ステップS124]照合パタン生成部140は、選択した部分グラフ内のノードを1つ取得する。そして照合パタン生成部140は、取得したノードと、そのノードの対応する照合パタン内のノードとの類似度sを算出する。
[ステップS125]照合パタン生成部140は、選択した部分グラフの生成元のグラフからノードを抽出する。そして照合パタン生成部140は、抽出したノードと、ステップS124で取得したノードに対応する照合パタン内のノードとの類似度を算出する。
[ステップS126]照合パタン生成部140は、抽出したノードと照合パタン内のノードとの類似度が、ステップS124で求めた類似度sより大きいか否かを判断する。類似度sより大きな類似度が得られた場合、処理がステップS127に進められる。類似度sより大きな類似度が得られなかった場合、処理がステップS128に進められる。
[ステップS127]照合パタン生成部140は、ステップS123で選択した部分グラフにおけるステップS124で取得したノードを、ステップS125で抽出したノードと入れ替える。
[ステップS128]照合パタン生成部140は、選択した部分グラフの生成元のグラフ内のすべてのノードを抽出したか否かを判断する。未抽出のノードがあれば、処理がステップS125に進められる。すべてのノードが抽出されていれば、処理がステップS129に進められる。
[ステップS129]照合パタン生成部140は、ステップS123で選択した部分グラフ内のすべてのノードが取得済みか否かを判断する。未取得のノードがあれば、処理がステップS124に進められる。すべてのノードが取得済みであれば、処理がステップS130に進められる。
[ステップS130]照合パタン生成部140は、すべての部分グラフを選択したか否かを判断する。未選択の部分グラフがあれば、処理がステップS123に進められる。すべての部分グラフが選択済みであれば、処理がステップS131に進められる。
[ステップS131]照合パタン生成部140は、ステップS123〜S130の処理において、少なくとも1回、部分グラフ内のノードの入れ替えが発生したか否かを判断する。入れ替えが発生した場合、処理がステップS122に進められる。入れ替えが発生していなければ、照合パタン生成部140は、その時点の照合パタンを記憶部110に格納し、照合パタン生成処理を終了する。
以上のようにして、照合パタンを生成することができる。第2の実施の形態におけるノード入れ替え要否判断のための類似度の計算回数は、部分グラフ抽出元のグラフのノード数×部分グラフのノード数であり、比較の際の組み合わせ爆発は発生しない。その結果、類似度の計算負荷は少なくてすむ。また、部分グラフのノードを入れ替えながら、複数の部分グラフそれぞれを多頻度グラフに近づけることで、サンプリングした部分グラフでは見逃された多頻度グラフについても探索可能となっている。
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、元のグラフと部分グラフとのノード間の対応関係を確率で表すことで、並び順の対応を曖昧にし、並び順の入れ替えによる部分グラフの補正を容易にするものである。すなわち、第2の実施の形態では、ノードの順番を固定することにより、多頻度グラフの探索が難しくなる場合がある。第3の実施の形態は、そのような多頻度グラフ探索の困難性を解消するものである。以下、ノードの順番を固定することによる多頻度グラフの探索の困難性について説明する。
図18は、ノードの順番を固定しても多頻度グラフの探索が容易な場合の例を示す図である。図18に示すグラフ61は、ノード間の接続関係が密に存在する。この場合、グラフ61から部分グラフ62を抽出すると、部分グラフ62内のノード間の接続関係も密に存在する可能性が高い。
ここで、部分グラフ62内のノードに、二通りの順番付けをした場合を考える。一方の部分グラフ62aは、識別子「P1」〜「P4」のノードの順で並べられている。他方の部分グラフ62bは、識別子「P2」、「P4」、「P1」、「P3」のノードの順で並べられている。
図18に示すようにノード間の接続関係が密に存在するとき、部分グラフ62内のノードをどのような順番で並べても、生成される部分グラフ情報63a,63bに示される接続関係の値は類似する。すなわち、部分グラフ62は、ノードをどのような順番で並べても、並び順が不適切であることにより多頻度グラフの検出漏れが発生する可能性は小さい。
図19は、ノードの順番を固定すると多頻度グラフの探索が困難になる場合の例を示す図である。図19に示すグラフ64は、ノード間の接続関係が疎である。この場合、グラフ64から部分グラフ65を抽出すると、部分グラフ65内のノード間の接続関係も疎にしか存在しない可能性が高い。
ここで、部分グラフ65内のノードに、二通りの順番付けをした場合を考える。一方の部分グラフ65aは、識別子「P1」〜「P4」のノードの順で並べられている。他方の部分グラフ65bは、識別子「P2」、「P4」、「P1」、「P3」のノードの順で並べられている。
図19に示すようにノード間の接続関係が疎に存在するとき、部分グラフ65内のノードをどのような順番で並べるかにより、生成される部分グラフ情報66a,66bに示される接続関係を示す値は異なってくる。このような場合、部分グラフ65のノードをどのような順番で並べるのかが、その後の多頻度グラフの探索の困難性に大きく影響する。
例えば部分グラフ65aと同様の接続関係を有する部分グラフが多数存在し、多頻度グラフであると認識されているとき、部分グラフ65bのようにノードを並べてしまうと、部分グラフ65は、多頻度グラフとは異なると判断されてしまう。しかも、接続関係が大きく異なっていることから、部分グラフ65bのノードの並び順を入れ替えることにより多頻度グラフである部分グラフ65aに近づくのを期待するしかなく、確実性に欠ける。
このように、ノードの並び順を固定すると、部分グラフの類似関係の判断を誤り、部分グラフを、多頻度グラフである照合パタンに近づけていく補正が困難となる場合がある。そこで第3の実施の形態では、照合パタン生成部140は、照合パタンのノードと、抽出した部分グラフのノードとの対応関係を確率で表すことで、並び順に曖昧性を持たせる。
並び順に曖昧性を持たせるために、照合パタン生成部140は、グラフ内の各ノードが、部分グラフに含まれ、照合パタンのいずれかのノードと対応付けられる確率を、ノード対応確率表に設定する。そして照合パタン生成部140は、ノード対応確率表に基づいて、グラフ内の各ノードが、照合パタンのいずれかのノードに対応付けられたノードと接続関係を有する期待値を算出する。
図20は、ノード対応確率表と接続関係の期待値との一例を示す図である。例えばグラフ71のノード間の接続関係を示すグラフ情報72内の行列を、行列Mとする。またノード数が3個の照合パタンを生成する場合を想定する。このとき照合パタン生成部140は、照合パタンに含まれる識別子「Q1」、「Q2」、「Q3」それぞれのノードに、グラフ71内の各ノードが対応付けられる確率を、ノード対応確率表73に設定する。
ノード対応確率表73は、グラフ71のノードの識別子が各行に対応付けられ、照合パタンのノードの識別子が各列に対応付けられている。行と列とが交差する位置に、行に対応するノードが、列に対応する照合パタンのノードに対応付けられる確率が設定される。各列の確率の合計は「1」となる。ノード対応確率表73には、初期値として任意の値が設定される。そして、ノード対応確率表73の設定値は、複数のグラフの接続関係に基づいて、補正される。以下、ノード対応確率表に示される行列を、行列Pとする。
照合パタン生成部140は、グラフ情報72とノード対応確率表73とに基づいて、グラフ71内の各ノードが、照合パタン内の各ノードと接続関係を有している期待値を計算する。例えばグラフ71の識別子「P1」のノードが接続関係を有しているのは、識別子「P2」と「P3」の各ノードである。すると、グラフ71の識別子「P1」のノードが照合パタンの識別子「Q1」のノードと接続関係を有する期待値は、識別子「P2」または「P3」のいずれかのノードが照合パタンの識別子「Q1」のノードに対応付けられる確率に等しい。図20の例では、識別子「P2」のノードが照合パタンの識別子「Q1」のノードに対応付けられる確率は「0.2」である。また識別子「P3」のノードが照合パタンの識別子「Q1」のノードに対応付けられる確率は「0.0」である。すると、グラフ71の識別子「P1」のノードが照合パタンの識別子「Q1」のノードと接続関係を有する期待値は、「0.2」(=0.2+0.0)となる。
計算された期待値は、接続関係期待値表74に設定される。接続関係期待値表74では、各行にグラフ71のノードの識別子が対応付けられ、各列に照合パタンのノードの識別子が対応付けられている。行と列の交差する位置に、行に対応するノードが、列に対応する照合パタンのノードと接続関係を有する期待値が設定される。接続関係期待値表74に設定する値は、行列Mの右から行列Pを乗算することで得られる。すなわち、接続関係期待値表74に示される期待値は、行列MPで表すことができる。
ここで、ノード対応確率表73に示された確率で、照合パタンの各ノードにグラフ71内のノードを対応付けて、部分グラフを生成することを考える。このとき、照合パタン生成部140は、部分グラフのノード間に接続関係が存在する期待値を算出する。
図21は、部分グラフの接続関係期待値の算出例を示す図である。例えば3つのノードを有する部分グラフ75を考える。識別子「Px」のノードは、照合ノードの識別子「Q1」のノードに対応付けられる。識別子「Py」のノードは、照合ノードの識別子「Q2」のノードに対応付けられる。識別子「Pz」のノードは、照合ノードの識別子「Q3」のノードに対応付けられる。
ここで、グラフ71に含まれるノードの中から、ノード対応確率表73の「Q1」の列に示された確率に従って、識別子「Px」のノードが選択される。すなわち識別子「P1」のノードが選択される確率が「0.7」、識別子「P2」のノードが選択される確率が「0.2」、識別子「P4」のノードが選択される確率が「0.1」である。同様に、グラフ71に含まれるノードの中から、ノード対応確率表73の「Q2」の列に示された確率に従って、識別子「Py」のノードが選択される。さらにグラフ71に含まれるノードの中から、ノード対応確率表73の「Q3」の列に示された確率に従って、識別子「Pz」のノードが選択される。
このような選択条件で、部分グラフ75に含まれるノードを選択するものとすると、ノード間の接続関係が存在する期待値が計算できる。例えば、グラフ71において、識別子「P1」のノードと識別子「P2」のノードとは、接続関係を有している。また、ノード対応確率表73によると、識別子「P1」のノードは、高い確率で、照合パタンの識別子「Q1」のノードに対応するノードとして選択される。また識別子「P2」のノードは、高い確率で、照合パタンの識別子「Q2」のノードに対応するノードとして選択される。すると、部分グラフ75を作成したとき、照合パタンの識別子「Q1」のノードに対応するノード「Px」と照合パタンの識別子「Q2」のノードに対応するノード「Py」との間に接続関係が存在する期待値も高くなる。
部分グラフ75のノード間に接続関係が存在する期待値は、行列Mに左から、行列Pの転置行列PTを乗算し、右から行列Pを乗算することで得られる。算出された期待値は、部分グラフ期待値表76に設定される。部分グラフ期待値表76に示される期待値は、行列PTMPで表すことができる。
このような部分グラフ期待値表が、照合パタンの生成対象となっているラベルが付与されているグラフごとに作成される。そして照合パタン生成部140は、複数の部分グラフ期待値表に基づいて、照合パタンを生成する。
図22は、照合パタンの生成例を示す図である。例えばラベル「不正発生」の複数のグラフ52,53,・・・それぞれに基づいて、部分グラフ期待値表76a,76b,・・・が生成される。複数の部分グラフ期待値表76a,76b,・・・それぞれの同じ位置に設定されるノード間の接続関係の期待値の平均値が、照合パタン77の対応する位置に設定される。
照合パタン77を生成すると、照合パタン生成部140は、接続関係期待値表74と照合パタン77とを比較し、元のグラフに含まれる各ノードと、照合パタン77に含まれる各ノードとの類似度を計算する。
図23は、類似度の計算例を示す図である。接続関係期待値表74の各行と照合パタン77の各行との、ベクトルの類似度が計算される。算出された類似度が、接続関係類似度表78に設定される。類似度の計算方法は、図15に示した通りである。
接続関係類似度表78には、各行にグラフ71のノードの識別子が対応付けられ、各列に照合パタン77のノードの識別子が対応付けられている。接続関係類似度表78の行と列とが交差する位置に、行に対応するグラフ71のノードと、列に対応する照合パタンのノードとの類似度が設定されている。以下、接続関係類似度表78内の行列を、行列Dとする。
照合パタン生成部140は、接続関係類似度表78に設定された類似度に基づいて、ノード対応確率表73における確率を補正する。例えば照合パタン生成部140は、類似度が大きいほど、ノード対応確率表73内の対応する確率が高くなるように補正する。
図24は、ノード対応確率の補正例を示す図である。例えば照合パタン生成部140は、ノード対応確率表73における確率に、接続関係の類似度の定数倍を加算し、列の合計が1になるように補正する。行列の計算式で表すと、まず以下の式が計算される。
P’=P+λD ・・・(5)
ここで、Pはノード対応確率表を示す行列であり、Dは接続関係類似度表78を示す行列である。λは、正の実数である。図24の例では、λ=0.1である。次に、以下の式が計算される。
P=P’S ・・・(6)
ここで、SはP’の列の合計の逆数を対角成分に持つ対角行列である。式(6)により、行列P’内の各成分が、その成分が属する列の値の合計で除算される。その結果、各列の合計が1になるように正規化される。
ノード対応確率表73が更新されると、接続関係期待値表74が更新される(図20参照)と共に、部分グラフ期待値表76が更新される(図21参照)。いずれかのグラフの部分グラフ期待値表が更新されると、照合パタン77が更新される(図22参照)。接続関係期待値表74と照合パタン77とが更新されると、接続関係類似度表78が更新される(図23参照)。接続関係類似度表78が更新されると、ノード対応確率表73が更新される(図24参照)。このような情報の更新の繰り返しが、所定の終了条件が満たされるまで繰り返される。終了条件は、例えば、ノード対応確率表73の値の変更量の総和が所定値以下になったことである。
終了条件が満たされたときの照合パタン77が、確定値として記憶部110に格納される。このような照合パタン生成処理の手順を以下に示す。
図25は、第3の実施の形態における照合パタン生成処理の手順の一例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS201]照合パタン生成部140は、グラフごとに、そのグラフに含まれる各ノードの対応確率をランダムに生成し、グラフごとのノード対応確率表に設定する。
[ステップS202]照合パタン生成部140は、グラフごとの部分グラフ期待値表に基づいて照合パタンを算出する。
[ステップS203]照合パタン生成部140は、グラフを1つ選択する。
[ステップS204]照合パタン生成部140は、選択したグラフのグラフ情報とノード対応確率表とに基づいて、グラフに含まれる各ノードが、照合パタンの各ノードに対応するノードと接続関係を有する期待値を算出する。照合パタン生成部140は、算出した期待値を、接続関係期待値表74に設定する。
[ステップS205]照合パタン生成部140は、選択したグラフ内のノードを1つ取得する。そして照合パタン生成部140は、取得したノードと、照合パタンの各ノードとの類似度を算出する。照合パタン生成部140は、算出した類似度を、接続関係類似度表78に設定する。
[ステップS206]照合パタン生成部140は、選択したグラフ内のすべてのノードを抽出したか否かを判断する。未抽出のノードがあれば、処理がステップS205に進められる。すべてのノードの抽出が完了していれば、処理がステップS207に進められる。
[ステップS207]照合パタン生成部140は、選択したグラフのノード対応確率表73に示される各ノードの対応確率を更新する。
[ステップS208]照合パタン生成部140は、すべてのグラフを選択したか否かを判断する。未選択のグラフがあれば、処理がステップS203に進められる。すべてのグラフが選択済みであれば、処理がステップS209に進められる。
[ステップS209]照合パタン生成部140は、複数のグラフそれぞれについてステップS207で更新された確率の差分の合計(更新差分合計)がε(εは正の実数)より大きいか否かを判断する。更新差分合計がεより大きければ、処理がステップS202に進められる。更新差分合計がε以下であれば、照合パタン生成部140は、その時点の照合パタンを記憶部110に格納し、照合パタン生成処理を終了する。
以上のようにして、照合パタンを生成することができる。第3の実施の形態では、グラフ内のノードと照合パタン内のノードとの対応関係は、確率によって表される。すなわち、確率表記により、グラフ内のすべてのノードが、照合パタンの接続関係と類似するかどうかの検討対象となっている。そのため、グラフ内の多頻度グラフの探索漏れの発生が抑止される。しかも、グラフ内のノード数が増大しても、組み合わせ爆発は発生せず、実用的な処理時間で照合パタンを生成できる。
〔その他の応用例〕
第1〜第3の実施の形態に示した照合パタンの生成処理は、例えば、新規のグラフが生成されるごとに行うことができる。その際、既存のグラフ群から生成した照合パタンを流用することで、新たな照合パタンの生成を高速に行うことができる。
図26は、既存の照合パタンを流用する例を示す図である。例えば既存のグラフ群81に基づいて照合パタン82を生成した後、追加のグラフ83が生成されたものとする。このとき照合パタン82や、照合パタン82生成時に用いた他の情報を再利用すれば、追加のグラフ83に含まれる部分グラフのうち多頻度グラフを含む可能性の高い部分グラフ83aを高速に抽出することができる。照合パタン82生成時に用いた他の情報は、第2の実施の形態であれば、ノード対応表、部分グラフを示す部分グラフ情報、接続関係表、類似度表などである。第3の実施の形態であれば、ノード対応確率表、接続関係期待値表、部分グラフ期待値表、接続関係類似度表などが、照合パタン82生成時に用いた他の情報である。
照合パタン82などの情報を再利用して部分グラフ83aを高速に抽出することで、監視装置100の処理能力を、他の照合パタン84の探索処理に振り分けることが可能となる。その結果、より多くの照合パタン84を見つけ出すことができ、不正が発生した日のグラフの特徴を表す照合パタンの抽出漏れを抑止することができる。
なお、既存のグラフ群81に「不正発生」のラベルが付与されている場合、照合パタン82に類似する部分グラフ83aが追加のグラフ83内に存在すれば、追加されたグラフ83の生成元となったログの採取期間内に不正があった可能性があると判断できる。すなわち、照合パタン82を用いて、過去に行われた不正・犯罪と同じタイプの不正・犯罪を高速に検知可能である。
また、グラフ83が追加されるごとに、既存の照合パタン82とは別の照合パタン84の探索を行うことで、過去に行われた不正・犯罪とは異なるタイプの不正・犯罪の検出に有用な照合パタン84を生成できる。その結果、日々発生する新たな不正・犯罪に迅速に対応することができる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1a,1b,・・・ グラフ
2a,2b,・・・ 部分グラフ
3a,3b,・・・,5a,5b,・・・ 接続関係行列
4a,4b 照合行列
6 多頻度グラフ
10 情報処理装置
11 記憶部
12 演算部

Claims (8)

  1. コンピュータに、
    複数のグラフから、所定数のノードを含む複数の部分グラフを抽出し、
    前記複数の部分グラフそれぞれを対象とし、対象の部分グラフに含まれる複数のノードに順番を設定し、該複数のノード間の接続関係、および該複数のノードのいずれかと接続関係を有する隣接ノードと該複数のノードとの接続関係を表す接続関係行列を生成し、
    前記複数の部分グラフごとの複数の接続関係行列に基づいて、前記複数の部分グラフそれぞれのうちでの順番が同じノードの接続関係の特徴を示す照合行列を生成し、
    前記複数の部分グラフそれぞれを操作対象とし、操作対象の部分グラフに含まれる複数のノード間の接続関係を示す部分行列と前記照合行列との類似度が高くなるように、該複数のノード間の順番の入れ替え、または該複数のノードの隣接ノードと該複数のノードとの入れ替え操作を行う、
    処理を実行させるグラフ処理プログラム。
  2. 前記入れ替え操作が行われると、前記入れ替え操作後の前記複数の部分グラフに対して、前記複数の接続関係行列の生成、前記照合行列の生成、および前記入れ替え操作を再度実行する、
    請求項1記載のグラフ処理プログラム。
  3. 前記入れ替え操作において類似度が高くなるような入れ替えが存在しなくなったとき、最後に生成した前記照合行列を出力する、
    請求項2記載のグラフ処理プログラム。
  4. 前記照合行列の出力後に新たなグラフが入力されると、前記新たなグラフから新たな部分グラフを抽出し、前記新たな部分グラフに対して、出力された前記照合行列を用いて、前記入れ替え操作を実行する、
    請求項3記載のグラフ処理プログラム。
  5. 前記照合行列の生成では、前記複数の部分グラフそれぞれのうちでの順番が同じノードの平均的な接続関係を、該順番のノードの接続関係の特徴とする、
    請求項1乃至4のいずれかに記載のグラフ処理プログラム。
  6. コンピュータに、
    複数のグラフそれぞれについて、部分グラフの構成ノードとして所定数のノードを順番に選択する場合の各ノードの選択確率を示す確率行列を生成し、
    前記複数のグラフそれぞれを第1期待値行列生成対象とし、前記第1期待値行列生成対象のグラフの確率行列に示された確率で該グラフから前記所定数のノードが順番に選択されるときに、該グラフ内の各ノードの、選択されたノードとの接続関係の有無の期待値を示す第1期待値行列を生成し、
    前記複数のグラフそれぞれを第2期待値行列生成対象とし、前記第2期待値行列生成対象のグラフの確率行列に示された確率で、該グラフから部分グラフの構成ノードとして前記所定数のノードが順番に選択されるときに、選択されたノード間の接続関係の有無の期待値を示す第2期待値行列を生成し、
    前記複数のグラフそれぞれの複数の第2期待値行列に基づいて、前記複数のグラフそれぞれから抽出される複数の部分グラフにおける、選択される順番が同じノード間の接続関係の特徴を示す照合行列を生成し、
    前記複数のグラフそれぞれを補正対象とし、補正対象のグラフの前記第1期待値行列と前記照合行列との類似度が高くなるように、該フラグの確率行列に示される選択確率を補正する、
    処理を実行させるグラフ処理プログラム。
  7. コンピュータが、
    複数のグラフから、所定数のノードを含む複数の部分グラフを抽出し、
    前記複数の部分グラフそれぞれを対象とし、対象の部分グラフに含まれる複数のノードに順番を設定し、該複数のノード間の接続関係、および該複数のノードのいずれかと接続関係を有する隣接ノードと該複数のノードとの接続関係を表す接続関係行列を生成し、
    前記複数の部分グラフごとの複数の接続関係行列に基づいて、前記複数の部分グラフそれぞれのうちでの順番が同じノードの接続関係の特徴を示す照合行列を生成し、
    前記複数の部分グラフそれぞれを操作対象とし、操作対象の部分グラフに含まれる複数のノード間の接続関係を示す部分行列と前記照合行列との類似度が高くなるように、該複数のノード間の順番の入れ替え、または該複数のノードの隣接ノードと該複数のノードとの入れ替え操作を行う、
    グラフ処理方法。
  8. 複数のグラフを記憶する記憶部と、
    前記複数のグラフから、所定数のノードを含む複数の部分グラフを抽出し、前記複数の部分グラフそれぞれを対象とし、対象の部分グラフに含まれる複数のノードに順番を設定し、該複数のノード間の接続関係、および該複数のノードのいずれかと接続関係を有する隣接ノードと該複数のノードとの接続関係を表す接続関係行列を生成し、前記複数の部分グラフごとの複数の接続関係行列に基づいて、前記複数の部分グラフそれぞれのうちでの順番が同じノードの接続関係の特徴を示す照合行列を生成し、前記複数の部分グラフそれぞれを操作対象とし、操作対象の部分グラフに含まれる複数のノード間の接続関係を示す部分行列と前記照合行列との類似度が高くなるように、該複数のノード間の順番の入れ替え、または該複数のノードの隣接ノードと該複数のノードとの入れ替え操作を行う演算部と、
    を有する情報処理装置。
JP2015230573A 2015-11-26 2015-11-26 グラフ処理プログラム、グラフ処理方法、および情報処理装置 Active JP6582922B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015230573A JP6582922B2 (ja) 2015-11-26 2015-11-26 グラフ処理プログラム、グラフ処理方法、および情報処理装置
US15/356,935 US10186060B2 (en) 2015-11-26 2016-11-21 Method for processing graphs and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015230573A JP6582922B2 (ja) 2015-11-26 2015-11-26 グラフ処理プログラム、グラフ処理方法、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2017097698A JP2017097698A (ja) 2017-06-01
JP6582922B2 true JP6582922B2 (ja) 2019-10-02

Family

ID=58777291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015230573A Active JP6582922B2 (ja) 2015-11-26 2015-11-26 グラフ処理プログラム、グラフ処理方法、および情報処理装置

Country Status (2)

Country Link
US (1) US10186060B2 (ja)
JP (1) JP6582922B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095659B2 (en) 2012-08-03 2018-10-09 Fluke Corporation Handheld devices, systems, and methods for measuring parameters
EP2973071B1 (en) 2013-03-15 2020-05-06 Fluke Corporation Automatic recording and graphing of measurement data
WO2017134665A1 (en) * 2016-02-03 2017-08-10 Cocycles System for organizing, functionality indexing and constructing of a source code search engine and method thereof
US20170228448A1 (en) * 2016-02-08 2017-08-10 Futurewei Technologies, Inc. Method and apparatus for association rules with graph patterns
JP6751235B2 (ja) * 2016-09-30 2020-09-02 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置
US20180137667A1 (en) * 2016-11-14 2018-05-17 Oracle International Corporation Graph Visualization Tools With Summary Visualization For Very Large Labeled Graphs
US10585575B2 (en) 2017-05-31 2020-03-10 Oracle International Corporation Visualizing UI tool for graph construction and exploration with alternative action timelines
CN108400887B (zh) * 2018-01-24 2021-06-04 深圳信息职业技术学院 符号网络的结构识别方法及装置
WO2019156819A1 (en) 2018-02-07 2019-08-15 Intel Corporation Method and apparatus for processing and distributing live virtual reality content
US11120082B2 (en) 2018-04-18 2021-09-14 Oracle International Corporation Efficient, in-memory, relational representation for heterogeneous graphs
CA3041871A1 (en) * 2018-05-01 2019-11-01 Royal Bank Of Canada System and method for monitoring security attack chains
RU2697958C1 (ru) * 2018-06-29 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносной активности на компьютерной системе
US20200082026A1 (en) * 2018-09-06 2020-03-12 International Business Machines Corporation Graph data processing
US11941054B2 (en) * 2018-10-12 2024-03-26 International Business Machines Corporation Iterative constraint solving in abstract graph matching for cyber incident reasoning
JP7215098B2 (ja) * 2018-11-12 2023-01-31 富士通株式会社 学習プログラム、学習方法および学習装置
KR102177940B1 (ko) * 2018-11-28 2020-11-12 서울대학교산학협력단 다중 간선 라벨 그래프의 정점들 간 관련도를 측정하는 방법 및 장치
CA3095362A1 (en) * 2019-10-03 2021-04-03 Royal Bank Of Canada System and method for behavioral pattern recognition
US11615330B2 (en) * 2020-03-18 2023-03-28 Kyndryl, Inc. Virtual subject matter expert provisioning
WO2022244129A1 (ja) * 2021-05-19 2022-11-24 株式会社KPMG Ignition Tokyo 管理装置、金融機関端末、及び管理方法
CN115525793A (zh) * 2021-06-24 2022-12-27 平头哥(上海)半导体技术有限公司 由计算机实现的方法、系统及存储介质
CN114840693B (zh) * 2022-07-05 2022-09-16 深圳市拓保软件有限公司 一种基于分布式图数据库的金融图像数据搜索方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259636A (ja) * 1999-03-05 2000-09-22 Hitachi Ltd グラフ構造検査システム
US20020174147A1 (en) * 2000-05-19 2002-11-21 Zhi Wang System and method for transcoding information for an audio or limited display user interface
US6694049B1 (en) * 2000-08-17 2004-02-17 The United States Of America As Represented By The Secretary Of The Navy Multimode invariant processor
JP2002351898A (ja) * 2001-05-23 2002-12-06 Internatl Business Mach Corp <Ibm> グラフ構造データの処理方法、処理システムおよびプログラム
US20030008287A1 (en) * 2001-07-09 2003-01-09 Sarah Black Pheonotypic correlation process
US7397788B2 (en) * 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7450845B2 (en) * 2002-12-11 2008-11-11 Nortel Networks Limited Expandable universal network
US7024183B2 (en) * 2003-07-30 2006-04-04 Motorola, Inc. Communication device with intelligent communication management and method therefor
JP4039488B2 (ja) 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 多頻度パターン抽出装置、多頻度パターン抽出方法、及びそのプログラムと記録媒体
JP2007153767A (ja) * 2005-12-01 2007-06-21 Univ Of Tokushima 化学構造の類似度を算出し化合物の安全性を評価する方法及びこれを用いた医薬品安全性情報システム
JP5350319B2 (ja) * 2010-05-20 2013-11-27 日本電信電話株式会社 友人推薦装置及び方法及びプログラム
JP6155833B2 (ja) * 2013-05-16 2017-07-05 富士通株式会社 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム

Also Published As

Publication number Publication date
JP2017097698A (ja) 2017-06-01
US20170154445A1 (en) 2017-06-01
US10186060B2 (en) 2019-01-22

Similar Documents

Publication Publication Date Title
JP6582922B2 (ja) グラフ処理プログラム、グラフ処理方法、および情報処理装置
US8768976B2 (en) Operational-related data computation engine
CN110099059B (zh) 一种域名识别方法、装置及存储介质
US8214372B2 (en) Determining configuration parameter dependencies via analysis of configuration data from multi-tiered enterprise applications
US11194906B2 (en) Automated threat alert triage via data provenance
CN110574338A (zh) 根本原因发现引擎
US11418534B2 (en) Threat analysis system and threat analysis method
CN109308415A (zh) 一种面向二进制的导向性模糊测试方法与系统
JP2022533552A (ja) システムレベルセキュリティのための階層的挙動行動のモデル化および検出システムおよび方法
CN114205216B (zh) 微服务故障的根因定位方法、装置、电子设备和介质
Chen et al. Invariants based failure diagnosis in distributed computing systems
WO2018135254A1 (ja) 影響範囲特定プログラム、影響範囲特定方法、および影響範囲特定装置
JP2019159431A (ja) 評価プログラム、評価方法および評価装置
McGahagan et al. A comprehensive evaluation of webpage content features for detecting malicious websites
Ejaz et al. Visualizing Interesting Patterns in Cyber Threat Intelligence Using Machine Learning Techniques
CN115567325B (zh) 一种基于图匹配的威胁狩猎方法
CN111382417A (zh) 使用一系列设备指纹识别来自用户设备的欺诈行为的系统和方法
WO2022097432A1 (ja) サイバー攻撃シナリオ生成方法、および装置
US20230004977A1 (en) Exploiting graph structure to improve results of entity resolution
WO2018206356A1 (en) Cloud infrastructure vulnerabilities assessment background
JP6917934B2 (ja) 特徴選択装置および特徴選択方法
JP2016042339A (ja) メッセージ表示方法、メッセージ表示装置、およびメッセージ表示プログラム
Almazrouei et al. The Internet of Things Network Penetration Testing Model Using Attack Graph Analysis
JP7412164B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Zhou The conditional diagnosability of twisted cubes under the comparison model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190819

R150 Certificate of patent or registration of utility model

Ref document number: 6582922

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150