(57)【要約】      （修正有）【課題】コンピュータシステム内の悪意のあるアクティビティの源を検出するための方法およびシステムを提供する。【解決手段】方法は、コンピュータシステムのオブジェクトに関する情報を収集し、オブジェクトに関して収集した情報に基づいてグラフを形成し、グラフから少なくとも２つの誘導部分グラフ（以下、部分グラフ）を選択し、選択した部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定し、選択した部分グラフから、決定した部分グラフの有害度係数の中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定し、決定した部分グラフの少なくとも１つの頂点と関連するオブジェクトをコンピュータシステム内の悪意のあるアクティビティの源として識別することを含む。【選択図】図２
2020109611.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム内の悪意のあるアクティビティの源を検出するための方法であって、
前記コンピュータシステムのオブジェクトに関する情報を収集し、
オブジェクトに関して収集された情報に基づいて、オブジェクトを頂点として表し、収集された情報の分析に基づいて決定されるオブジェクト間の関係をエッジとして表したグラフを形成し、
得られたグラフから少なくとも２つの誘導部分グラフを選択し、
選択された部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定し、
選択された部分グラフから、決定された部分グラフの有害度係数の中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定し、
決定された部分グラフの少なくとも１つの頂点と関連するオブジェクトをコンピュータシステム内の悪意のあるアクティビティの源として識別する、
各処理を含む、方法。
【請求項２】
コンピュータシステムの悪意のあるアクティビティについて以前に形成されたグラフであって、各々が有害度係数に関連付けられるグラフを含むグラフのデータベースのうち、少なくとも１つの部分グラフとの類似度に基づいて、部分グラフの有害度係数を決定することをさらに含む、請求項１に記載の方法。
【請求項３】
前記部分グラフの有害度係数は、当該部分グラフの頂点に関連付けられたオブジェクトのうちの少なくとも１つのオブジェクトに悪意がある確率を特徴付ける有害度係数である、請求項１に記載の方法。
【請求項４】
因果関係に関連付けられたグラフエッジによって他の部分グラフに関連する部分グラフのみが分析される、請求項１に記載の方法。
【請求項５】
直径が所定の閾値未満である部分グラフが分析される、請求項１に記載の方法。
【請求項６】
前記悪意のあるアクティビティの源であるとして確認された前記オブジェクトのうち、これまで知られていないオブジェクトが選択される、請求項１に記載の方法。
【請求項７】
前記オブジェクトは、ファイル、フォルダ、アプリケーション、レジストリエントリ、またはウェブサイトのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項８】
コンピュータシステム内の悪意のあるアクティビティの源を検出するためのシステムであって、
ハードウェアプロセッサを備え、当該ハードウェアプロセッサは、
前記コンピュータシステムのオブジェクトに関する情報を収集し、
オブジェクトに関して収集された情報に基づいて、オブジェクトを頂点として表し、収集された情報の分析に基づいて決定されるオブジェクト間の関係をエッジとして表したグラフを形成し、
得られたグラフから少なくとも２つの誘導部分グラフを選択し、
選択された部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定し、
選択された部分グラフから、決定された部分グラフの有害度係数の中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定し、
決定された部分グラフの少なくとも１つの頂点と関連するオブジェクトをコンピュータシステム内の悪意のあるアクティビティの源として識別する、
ように構成される、システム。
【請求項９】
コンピュータシステムの悪意のあるアクティビティについて以前に形成されたグラフであって、各々が有害度係数に関連付けられるグラフを含むグラフのデータベースのうち、少なくとも１つの部分グラフとの類似度に基づいて、部分グラフの有害度係数を決定するように構成される、請求項８に記載のシステム。
【請求項１０】
前記部分グラフの有害度係数は、当該部分グラフの頂点に関連付けられたオブジェクトのうちの少なくとも１つのオブジェクトに悪意がある確率を特徴付ける有害度係数である、請求項８に記載のシステム。
【請求項１１】
因果関係に関連付けられたグラフエッジによって他の部分グラフに関連する部分グラフのみが分析される、請求項８に記載のシステム。
【請求項１２】
直径が所定の閾値未満である部分グラフが分析される、請求項８に記載のシステム。
【請求項１３】
前記悪意のあるアクティビティの源であるとして確認された前記オブジェクトのうち、これまで知られていないオブジェクトが選択される、請求項８に記載のシステム。
【請求項１４】
前記オブジェクトは、ファイル、フォルダ、アプリケーション、レジストリエントリ、またはウェブサイトのうちの少なくとも１つを含む、請求項８に記載のシステム。
【請求項１５】
コンピュータシステム内の悪意のあるアクティビティの源を検出するための命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、
前記コンピュータシステムのオブジェクトに関する情報を収集し、
オブジェクトに関して収集された情報に基づいて、オブジェクトを頂点として表し、収集された情報の分析に基づいて決定されるオブジェクト間の関係をエッジとして表したグラフを形成し、
得られたグラフから少なくとも２つの誘導部分グラフを選択し、
選択された部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定し、
選択された部分グラフから、決定された部分グラフの有害度係数の中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定し、
決定された部分グラフの少なくとも１つの頂点と関連するオブジェクトをコンピュータシステム内の悪意のあるアクティビティの源として識別する、
ことを含む、コンピュータ可読媒体。
【請求項１６】
前記命令はさらに、
コンピュータシステムの悪意のあるアクティビティについて以前に形成されたグラフであって、各々が有害度係数に関連付けられるグラフを含むグラフのデータベースのうち、少なくとも１つの部分グラフとの類似度に基づいて、部分グラフの有害度係数を決定することを含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記部分グラフの有害度係数は、当該部分グラフの頂点に関連付けられたオブジェクトのうちの少なくとも１つのオブジェクトに悪意がある確率を特徴付ける有害度係数である、請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
因果関係に関連付けられたグラフエッジによって他の部分グラフに関連する部分グラフのみが分析される、請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
直径が所定の閾値未満である部分グラフが分析される、請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記悪意のあるアクティビティの源であるとして確認された前記オブジェクトのうち、これまで知られていないオブジェクトが選択される、請求項１５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は情報セキュリティを提供するための技術に関し、より具体的には、コンピュータシステム内の悪意のある活動（アクティビティ）の源を検出するシステムおよび方法に関する。
【背景技術】
【０００２】
近年のコンピュータ技術の急速な成長、および様々なコンピューティングデバイス（パーソナルコンピュータ、ノートブック、タブレット、スマートフォンなど）の普及は、様々な活動分野および多数のタスク（インターネットサーフィンから銀行振替および電子文書トラフィックまで）におけるこれらのデバイスの使用を強力に後押ししている。コンピューティングデバイスの増加およびこれらのデバイス上で実行されるソフトウェアの量と並行して、悪意のあるプログラムの数も急速に増加している。
【０００３】
現在、悪意のあるプログラムが多数存在する。悪意のあるプログラムの中には、ユーザのデバイスから個人データおよび機密データ（ログイン情報およびパスワード、銀行情報、電子文書など）を盗むものがある。他の悪意のあるプログラムは、DDoS（Distributed  Denial  of  Service）のような攻撃のために、または他のコンピュータまたはコンピュータネットワークに対する総当たりの方法によってパスワードをソートするために、ユーザのデバイスからいわゆるボットネットを形成する。さらに他の悪意のあるプログラムは、侵入的な広告、有料のサブスクリプション、市外局番へのＳＭＳの送信などを介してユーザに有料コンテンツを勧める。
【０００４】
アンチウイルスとして知られる特別なプログラムは、上記の脅威に非常によく対処する。しかしながら、たとえば、コンピュータシステムに対する標的型サイバー攻撃（APT：持続的標的型攻撃）の場合、また、コンピュータシステムが感染してアンチウイルスが当該コンピュータシステム上で機能していない場合など（例えば、アンチウイルスがインストールされなかったか、またはオフにされたとき）の特定の状況では、上記のアンチウイルスは実際には役に立たない。
【０００５】
この場合、コンピュータシステムが感染していることを確認するためには、コンピュータシステム状態のリソース大量消費分析を実行し、コンピュータシステムの挙動ログ、コンピュータネットワーク内で送受信されているデータ、ユーザの行動などを分析する必要がある。このような対策は多くの場合手動で実行する必要があり、それによって対策の有効性はアップするが、作業コストが著しく増加する。
【０００６】
これまでに知られている技術は、コンピュータシステムで収集される多種多様なデータを復元してリンクさせるというタスクには対処するが、当該データについて特定された関係に基づいてコンピュータシステムの状態を分析するというタスクは扱わない。しかし、かかるデータについて特定された関係に基づいて、所与の時点での分析対象コンピュータシステムの状態、または、所与の時点に当該コンピュータシステム上で実行されたアクションを後で分析することができ、分析対象コンピュータシステムの特定の状態、または、当該コンピュータシステム上で実行されたアクションの発生の原因を特定することができる。
【０００７】
本開示によれば、コンピュータシステム内の悪意のあるアクティビティの源を検出するという課題をより効果的に解決することができる。
【発明の概要】
【０００８】
本開示は、データの情報セキュリティを提供するように設計される。
【０００９】
本開示の技術的結果は、コンピュータシステムのオブジェクト間の関係の分析に基づいて、コンピュータシステム内の悪意のあるアクティビティの源を検出することである。
【００１０】
いくつかの態様では、これらの結果は、コンピュータシステム内の悪意のあるアクティビティの源を検出するための方法により実現され、当該方法は、コンピュータシステム内の悪意のあるアクティビティの源を検出するためのシステムの構成要素を用いて実現される。当該方法は、コンピュータシステムのオブジェクト（以下、「オブジェクト」）に関する情報を収集するステップと、オブジェクトに関して収集された情報に基づいて、オブジェクトを頂点として表し、収集された情報の分析に基づいて決定されるオブジェクト間の関係をエッジとして表したグラフを形成するステップと、得られたグラフから少なくとも２つの誘導部分グラフ（以下、部分グラフ）を選択するステップと、選択された部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定するステップと、選択された部分グラフから、決定された部分グラフの有害度係数の中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定するステップと、決定された部分グラフの少なくとも１つの頂点と関連するオブジェクトをコンピュータシステム内の悪意のあるアクティビティの源として識別するステップと、を含む。
【００１１】
本方法の別の特定の態様では、コンピュータシステムの悪意のあるアクティビティについて以前に形成されたグラフであって、各々が有害度係数に関連付けられるグラフを含むグラフのデータベースのうち、少なくとも１つの部分グラフとの類似度に基づいて、部分グラフの有害度係数を決定する。
【００１２】
本方法のさらに別の特定の態様では、部分グラフの有害度係数は、当該部分グラフの頂点に関連付けられたオブジェクトのうちの少なくとも１つのオブジェクトに悪意がある確率を特徴付ける有害度係数である。
【００１３】
本方法の別の特定の態様では、因果関係に関連付けられたグラフエッジによって他の部分グラフに関連する部分グラフのみが分析される。
【００１４】
本方法のさらに別の特定の態様では、直径が所定の閾値未満である部分グラフが分析される。
【００１５】
本方法の別の特定の態様では、悪意のあるアクティビティの源であるとして確認されたオブジェクトのうち、これまで知られていないオブジェクトが選択される。
【００１６】
本開示はまた、悪意のあるアクティビティの源を検出するためのシステムを提供する。一態様では、システムは、コンピュータシステムのオブジェクトに関する情報を収集し、オブジェクトに関して収集された情報に基づいて、オブジェクトを頂点として表し、収集された情報の分析に基づいて決定されるオブジェクト間の関係をエッジとして表したグラフを形成し、得られたグラフから少なくとも２つの誘導部分グラフ（以下、部分グラフ）を選択し、選択された部分グラフごとに、部分グラフの頂点間の関係の強さを記述する数値特性を表す有害度係数を決定し、選択された部分グラフから、有害度係数を決定した部分グラフの中で有害度係数が最小であり、関連する部分グラフの有害度係数の合計が最大である部分グラフを決定し、決定された部分グラフの少なくとも１つの頂点と関連するオブジェクトを、コンピュータシステム内の悪意のあるアクティビティの源として識別するように構成されたハードウェアプロセッサを備える。
【００１７】
本開示はさらに、上述の方法を実行するための命令を格納するコンピュータ可読媒体を提供する。
【００１８】
本開示の例示的な態様についての上記簡略化した概要は、本開示の基本的な理解に役立つ。この発明の概要は、想定される態様全てを包含する包括的な概観ではなく、すべての態様の重要なまたは重大な要素を識別することも、本開示のいずれかまたはすべての態様の範囲を画定することも意図していない。前述のことを達成するために、本開示の１つまたは複数の態様は、特許請求の範囲に記載し具体的に示した特徴を含む。
【図面の簡単な説明】
【００１９】
本明細書に組み込まれその一部を構成する添付の図面は、本開示の１つまたは複数の例示的な態様を示し、詳細な説明とともに、それらの原理および実装を説明するものである。
【００２０】
【図１】図１は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティを検出するシステムを示す図である。
【図２】図２は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティを検出する方法のフロー図である。
【図３】図３は、本開示の例示的な態様による、コンピュータシステムのオブジェクト間の関係の分析に基づいてグラフを形成するためのフロー図である。
【図４】図４は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティの源を検出するシステムの別の態様を示す図である。
【図５】図５は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティの源を検出する方法のフロー図である。
【図６】図６は、本開示の例示的な態様による、汎用コンピュータシステム、パーソナルコンピュータ、またはサーバのブロック図である。
【発明を実施するための形態】
【００２１】
例示的な態様は、本明細書ではネットワークファイルシステムに格納されたファイルを保護するためのシステム、方法、およびコンピュータプログラムプロダクトの文脈で説明される。当業者であれば、以下の説明は単に例示的なものであり、決して限定的なものではないことを理解するであろう。他の態様は、本開示を利用する当業者には容易に示唆されるであろう。以下、添付の図面に示される例示的な態様の実施形態を詳細に参照する。図面および以下の説明を通じて、同一または類似の要素を参照するために、可能な限り同一の参照符号が使用される。
【００２２】
以下の定義および概念を、本開示の種々の態様の説明に使用する。
【００２３】
機能関係とは、オブジェクト間の関係（リンク）の一種であり、各オブジェクトの変化が互いに対応する関係を指す。機能関係では、因果関係の一次属性は存在しない：生産性（一方のオブジェクトが他方を生み出すのではない）、時間の非対称性（それらは共存し、一方が他方に先行しない）、および不可逆性。
【００２４】
図１は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティを検出するシステムのブロック図である。
【００２５】
コンピュータシステム内の悪意のあるアクティビティを検出するシステム１００は、収集モジュール１１０と、コンピュータシステムのオブジェクト１１１と、訓練済み選択モデル１１２と、グラフ形成モジュール１２０と、グラフデータベース１３１と、検索モジュール１３０と、分析モジュール１４０と、決定１４１と、再訓練モジュール１５０と、を含む。
【００２６】
一態様では、収集モジュール１１０は：
・コンピュータシステムのオブジェクト１１１に関する情報（以下、それぞれ「オブジェクト」および「オブジェクトに関する情報」という）を収集する;
・収集した情報の分析に基づいてオブジェクト１１１間の関係を決定し、各関係には関係の信頼度が割り当てられる;
・収集したオブジェクト１１１および決定した関係に関する情報をグラフ形成モジュール１２０に送る。
【００２７】
例えば、収集モジュール１１０によるコンピュータシステムのオブジェクト１１１に関する情報の収集は、コンピュータシステムにインストールされた専用ドライバを用いて行うことができ、このドライバは、プロセス間、ネットワーク内などで転送されているデータをインターセプトする。
【００２８】
システムの一変形態様では、オブジェクト１１１は少なくとも以下を含むことができる:
・ファイル；
・ネットワークパケット;
・サイト；
・物理的および仮想的の両方のＲＡＭページ;
・当該オブジェクトに関連する、オペレーティングシステムのプロセスおよび他のオブジェクト;
・オペレーティングシステムのイベント;
・オペレーティングシステムまたはアプリケーションのログに書き込まれたエントリ;
・ＭＦТ（マスタファイルテーブル）に書き込まれたエントリ;
・オペレーティングシステム・レジストリに書き込まれたエントリ。
【００２９】
例えば、オブジェクト１１１は、「http://google.com」または「http://files.downloads.com/chrome.exe」などのウェブサイトアドレスを構成することができる。
【００３０】
さらに別の例では、オペレーティングシステム・ログ「system.evtx」はエントリ１１１で構成される。一例を以下に示す:
【表１】
2020109611.tif 000003
システムイベントを記述する「key」−「value」の組を含む。
【００３１】
システムのさらに別の変形態様では、オブジェクト１１１に関する情報は少なくとも以下を含む:
・当該オブジェクト１１１を一意的に特徴付ける情報。
・当該オブジェクト１１１と他のオブジェクト１１１との間の関係の存在について結論付けることを可能にする情報。
【００３２】
例えば、アーカイブ＃３から抽出されたファイル＃１およびファイル＃２が存在する場合、これらのファイルはサイズによって特徴付けられ、また、それらの作成時間（本質的にはアーカイブから抽出された時間）によって特徴付けられる。ファイルのサイズはファイル＃１と＃２が互いに関連しているかどうかに関する情報を実質的に含まないが、これらのファイルの作成時間はファイルがアーカイブから抽出されたことを間接的に示すことができる（例えば、ファイル＃１と＃２の作成時間が所与の精度で一致する場合）。
【００３３】
さらに別の例では、ファイルの作成に関する情報（すなわち、いつ、どの名前で、どのプロセスが、ファイルを作成したか）を含むオペレーティングシステム・ログからのデータは、たとえば、ファイル＃１から開始したプロセス＃４がファイル＃２を作成したときに、ファイル＃１とファイル＃２との間の直接関係を示すことができる。
【００３４】
システムのさらに別の変形態様では、オブジェクト１１１に関する情報は少なくとも以下を含む:
・ファイルに関する情報：
−ファイル名
−ファイルへの経路
−ファイルサイズ
・プロセスに関する情報：
−プロセス識別子
−親プロセスおよび子プロセスの識別子
−プロセスが開始したファイルの名前
・ネットワークパケットに関する情報：
−ネットワークパケットの送受信のアドレス
−ネットワークパケットのサイズ
−ネットワークパケットに含まれる種類、サイズおよび「データの畳み込み」
−ネットワークパケットを受信又は送信するアプリケーションの名前
・ＲＡＭページ：
−ＲＡＭページの種類、サイズ、フラグ
−ＲＡＭページのサイズ、位置、種類、および「データの畳み込み」
−プロセスの識別子、および指定されたＲＡＭページ上のデータを扱うアプリケーションの名前
・オペレーティングシステム・ログのエントリ：
−key-value。keyはパラメータの名前であり、valueはその値である。
【００３５】
例えば、オペレーティングシステム・レジストリ（オペレーティングシステム・ログの１つと見なすことができる）には、以下のエントリが現れうる:
【表２】
2020109611.tif 000004
【００３６】
上の例では、keyはフィールド名「ImagePath」であり、当該keyのvalueは、値のペア「field  type」または「REG_EXPAND_SZ%」、および、「field  value」または「systemroot%\KtknjRrl.exe」である。
【００３７】
データの畳み込み（ハッシュ和）はハッシュ関数を用いてデータを処理した結果であり、所与のデータセットはいずれも、より小さいサイズの別のデータセットに関連付けられる。特定の例では、データの畳み込みは当該データのチェックサムである（CRC32またはMD5など）。
【００３８】
システムのさらに別の変形態様では、オブジェクト１１１間の関係は、オブジェクト１１１間の論理関係または機能関係（例えば、バイナリ関係の形態のもの）である。論理関係は、２つのオブジェクト１１１が連帯的に使用されるとき（すなわち、オブジェクト１１１が、関連するオブジェクトとして使用されるとき、または、関連する時点で、特に同時に、使用されるとき）に生じ得るが、かかるオブジェクトは互いに関係しないことがある（例えば、ネットワークパケットとオペレーティングシステムのイベント「ファイルをディスクに書き込む」）。他方、機能関係は、１つのオブジェクト１１１が他のオブジェクト１１１を分析するために使用されるときに生じ得る（例えば、サイトとネットワークパケット）。
【００３９】
システムのさらに別の変形態様では、条件を満たす場合に２つのオブジェクト１１１の間に関係（機能関係および論理関係の両方）が確立される。条件とは少なくとも以下の一つを満たすことである:
・第１のオブジェクトが第２のオブジェクトによって提供されるデータを処理する;
例えば、プロセス間通信（IPC）技術の使用であり、一例として、第１のプロセスが第２のプロセスのメモリからデータを読み出す;
・第１のオブジェクトが第２のオブジェクトを使用する;
例えば、動的リンクライブラリ（DLL）を、その動作のためのプログラムによって使用する;
・第１および第２のオブジェクトが、第３のオブジェクトによって使用される;
例えば、その作業中のプログラムによる２つの独立したDLLの使用（すなわち、DLLのうちの一方の機能が他方の機能を使用しないDLL）;
・当該オブジェクトは、それらを特徴付ける少なくとも１つの同一のパラメータを有する;
例えば、パラメータはファイル名である場合がある。
さらに詳細に説明すると上記の例は以下のように現れる：
サービスを作成すると以下が実行される:
・ファイル「KtknjRrl.exe」のハードディスクへの書き込み。MFTに情報が書き込まれる:
【表３】
2020109611.tif 000005
・イベントログで実行された操作に関するデータの書き込み：
【表４】
2020109611.tif 000006
・作成されたサービスに関するデータのレジストリへの書き込み：
【表５】
2020109611.tif 000007
【００４０】
３つのエントリはすべて、（ファイル「KtknjRrl.exe」に対応するIDにより）MFTの共通パラメータとして現れるファイル名「KtknjRrl.exe」、イベントログ、およびレジストリによって統合される。
【００４１】
さらに別の実施形態では、ユーザがブラウザ「chrome.exe」によって、サイト「http://files.com」からアーカイブ「drivers.zip」をダウンロードする。そして、アーカイブから、アプリケーション「WinZip」によって、ファイル「driver.sys」を抽出する。この場合、ファイル「drivers.sys」は、ファイル「drivers.zip」に直接関連し、ブラウザ「chrome.exe」に間接的に関連することが確立される。この例のオブジェクト１１１は、オブジェクト＃１としてブラウザ「chrome.exe」、オブジェクト＃２としてアーカイブ「drivers.zip」、オブジェクト＃３としてファイル「driver.sys」、オブジェクト＃４としてサイト「http://files.com」である。
【００４２】
オブジェクト＃１やオブジェクト＃１の挙動の変化がオブジェクト＃２やオブジェクト＃２の挙動に影響する場合（例えば、オブジェクト＃１がアーカイブであり、オブジェクト＃２がアーカイブから抽出されるファイルである場合）には、オブジェクト＃１とオブジェクト＃２との間に直接的な関係が成立する。オブジェクト＃１とオブジェクト＃３との間、および、オブジェクト＃２とオブジェクト＃３との間に直接的な関係が存在する（例えば、アーカイブから抽出された２つのファイルの間に間接的な関係が成立する）場合には、オブジェクト＃１とオブジェクト＃２との間に間接的な関係が成立する。オブジェクト間の直接的な関係と間接的な関係の両方を同時に確立することが可能である。
【００４３】
一般に、上記の例では、以下の関係を特定することができる:
【表６】
2020109611.tif 000008
【００４４】
オブジェクト１１１間の関係を示すさらに別の例では、Windowsオペレーティングシステムの様々なサービスがそれらの作業に関するデータを、「[id  of  entry][time][process][event][parameters]」という形式でオペレーティングシステム・ログ「system.evtx」に書き込む。たとえば、ログには以下のエントリが含まれる:
【表７】
2020109611.tif 000009
【００４５】
上記の場合、同一のファイル「data.dat」が３０秒の差で書き込み及び読み出しされていて２つの異なるオブジェクト１１１を関連付ける事前に設定した条件を満たしているので、プロセス「hsayy.exe」がプロセス「explorer.exe」に関連することが確立される。
【００４６】
システムのさらに別の変形態様では、２つのオブジェクト１１１間の関係の信頼度は、当該オブジェクト１１１の一方が、当該オブジェクト１１１の他方のオブジェクトに対して論理関係または機能関係を有する確率を特徴付ける数値である。
【００４７】
例えば、関係の信頼度は０．０〜１．０の範囲内の実数値であってもよい。この場合、値０．０はオブジェクト１１１同士が確実に関係していないことを意味し、値１．０はオブジェクト１１１間に関係が確実に存在することを意味する。
【００４８】
このように、オブジェクト１１１間の関係の信頼度が可能な最大値（例えば、上述の例では１．０）でない場合、オブジェクト１１１間の関係の決定は本質的に確率的であり、関係は厳密に決定されるわけではなく、当該オブジェクト１１１間の関係に関する統計データ等、過去の経験に基づいて決定されることが多い。
【００４９】
例えば、差分０．１秒で作成された２つのオブジェクト１１１が互いに関連している（例えば、ソフトウェアのインストール時に作成された）ということは推測ではあるものの、オペレーティングシステムの動作や各種ソフトウェアのインストールに関する膨大な量の累積統計データに基づく信頼度の高い推測である。
【００５０】
本システムのさらに別の変形態様では、見出された関係および収集されたオブジェクト１１１に関する情報のグラフ形成モジュール１２０への送信は、収集されたオブジェクト１１１間に見出された関係の信頼度が予め設定した閾値を超える場合にのみ行われる。
【００５１】
例えば、関係の信頼度は、関係が成立しているオブジェクト１１１の＃１、＃２それぞれを、これらのオブジェクト１１１を特徴付けるパラメータ｛pi｝および｛qi｝の組で記述することによって算出できる。
【００５２】
システムのさらに別の変形態様では、収集モジュール１１０が情報を収集し、互いの関係が決定されているオブジェクト１１１の選択は、訓練済み選択モデル１１２を使用して行うことができる。訓練済み選択モデル１１２は、（悪意があるか又は安全であるか）予め挙動が知られているコンピュータシステムを含む訓練用サンプルに基づき、先行技術において知られている機械学習の手法を用いて予め作成される。これにより、選択可能なオブジェクト１１１の数が最小となる傾向があり、オブジェクト１１１およびそれらの関係に関する情報の分析に基づき分析モジュール１４０が下した悪意のあるアクティビティの検知に関する決定の精度が最高となる傾向がある。かかるアプローチにより、下される決定の精度を維持しつつ、コンピュータシステム内の悪意のあるアクティビティを特定するために使用される計算資源（メモリ、プロセッサ時間など）を削減することが可能である。
【００５３】
コンピュータシステム内の悪意のあるアクティビティを特定するため、以下では、オブジェクト１１１（オブジェクトに関する情報）およびオブジェクト１１１間の関係の両方を使用することができるので、選択されたオブジェクト１１１のグループおよび選択されたオブジェクト１１１間に見出される関係のグループを、グラフの要素として表すことが有用である。グラフは、その使用において広範かつ多機能の理論（グラフ理論）が構築されてきた数学的オブジェクトであり、その分析によって抽象的な数学的問題を解くことができる。
【００５４】
グラフは、一連のグラフ頂点およびグラフエッジ（すなわち頂点のペア間の接続）を表す抽象的な数学的オブジェクトである。例えば、一連の頂点として、一連のオブジェクト１１１を使用することができ、一連のエッジとして、選択されたオブジェクト１１１間の一連の論理関係および機能関係を使用することができる。
【００５５】
異なる適用領域に対するグラフの種類に応じて、方向性、関係の数の制限、および頂点またはエッジに関する補足データは異なり得る。数学およびコンピュータサイエンスにおいて実用的な多くの構造は、グラフによって表すことができる。例えば、コンピュータシステムは有向グラフによってモデル化できる。かかる有向グラフでは、上述のように、頂点がオブジェクト１１１（オブジェクト１１１に関する情報を表すパラメータセットによって記述される）であり、円弧（有向エッジ）がオブジェクト１１１間の論理関係および機能関係である。さらに、各頂点（関係）に重み（関係の信頼度）を割り当て、重み付き有向グラフを形成することができる。
【００５６】
一態様では、グラフ形成モジュール１２０は:
・見出された関係に関する情報に基づいて少なくとも２つのグラフを形成する。グラフの直径は予め指定した値未満とし、グラフの頂点はオブジェクト１１１で、エッジは決定された関係とする;
・形成されたグラフに基づいて要約グラフを形成する。要約グラフは、第１および第２のグラフのうちの少なくとも１つの頂点と、それらの頂点を結ぶ１つのエッジとを含む;
・形成されたグラフから、少なくとも２つの誘導部分グラフ（以下、部分グラフ）を抽出する;
・形成された要約グラフを検索モジュールおよび分析モジュール１４０に転送する。
【００５７】
例えば、コンピュータシステムをクライアントの分散システムとして表すことができる場合、各クライアントのグラフは、各クライアントから収集されたオブジェクト１１１と、これらのオブジェクト１１１間で見つかった関係とに基づいて形成される。
【００５８】
システムの１つの変形態様では、上記のように形成された要約グラフは、グラフのエッジの数（すなわち、オブジェクト１１１間の関係）を減らすために最適化される。
【００５９】
例えば、グラフの最適化中に、グラフから少なくとも以下のものが除去される:
・所定のプロパティを有する頂点（指定されたパラメータを有する、指定されたタイプのオブジェクトなど）、
・所定のプロパティを有するエッジ（例えば、オブジェクトの作成時間に関連するオブジェクト間の関係）、
・重複するエッジ。
【００６０】
システムのさらに別の変形態様では、要約グラフのエッジの交点の数を最小限に抑える。この場合、グラフのエッジの交点の数（グラフの交点の数）は有限セットの交点のグラフとしてのそのグラフの表現における要素の最小数であり、または同等であるが、グラフのすべてのエッジをカバーするのに必要なクリックの最小数である。
【００６１】
システムのさらに別の変形態様では、グラフ形成モジュール１２０は:
・見つかった関係に関する情報に基づいてグラフを形成する。グラフの頂点はオブジェクト１１１であり、エッジは決定された関係である。よって、
−グラフの直径は所定のパラメータ未満である;
−第１および第２のグラフのうちの少なくとも１つの頂点と、これらの頂点を結ぶ１つのエッジとを含む;
・形成されたグラフを検索モジュールおよび分析モジュール１４０に転送する。
【００６２】
システムのさらに別の変形態様では、グラフ形成モジュール１２０はいくつかのグラフ（少なくとも３つ）に基づいていくつかのグラフを形成することができるが、要約グラフのグラフ数（少なくとも２つ）よりも少ない。
【００６３】
例えば、分散システムを表すコンピュータシステム（例えば、ローカルエリアネットワークに統合されたパーソナルコンピュータ）の分析中に、コンピュータ（本質的にコンピュータシステムの独立した要素）ごとにいくつかのグラフが形成される。次に、コンピュータごとに形成されたグラフに基づいて、コンピュータごとに１つの要約グラフが形成され、形成された要約グラフのセット全体が検索モジュール１３０に送られる。
【００６４】
さらに別の例では、コンピュータシステムが分散システムを表す場合、オペレーティングシステム・ログ「security.evtx」のエントリに含まれるユーザ名およびそのＩＰアドレスを含む、そのコンピュータシステムのオブジェクト１１１に関する情報に基づいて、グラフが構築される。その結果、例えば、以下の一連の動作（方向グラフ）が得られる:
ユーザ＃１がコンピュータ＃１上でファイルを作成→…
…→コンピュータ＃２からユーザ＃１がログイン→…
…→コンピュータ＃２上でユーザ＃１がユーザ＃２としてログアウト→…
…→コンピュータ＃３からユーザ＃２がログイン等々。
検索モジュール１３０は、以下のように設計される:
・グラフデータベース１３１から、取得されたグラフとの類似度が所定のレベルを超える少なくとも１つのグラフを選択する。グラフデータベースはコンピュータシステムのアクティビティについて以前に形成されたグラフを保持し、各グラフには、そのアクティビティの分析に基づいて悪意のあるアクティビティの係数が割り当てられる;
・選択されたグラフを分析モジュール１４０に送る。
【００６５】
本システムの１つの変形態様では、コンピュータシステムから選択されて既知の悪意のあるアクティビティを有するオブジェクト１１１に基づいて形成されたグラフで、グラフデータベース１３１が事前に充填される。これらのグラフは、上述した収集モジュール１１０およびグラフ形成モジュール１２０を用いて作成される。
【００６６】
システムのさらに別の変形態様では、選択モデル１１２の機械学習に使用される教師用サンプルを構成するコンピュータシステムから選択されたオブジェクト１１１に基づいて形成されたグラフで、グラフデータベース１３１が充填される。
【００６７】
本システムのさらに別の変形態様では、グラフデータベース１３１は上述の方法によって形成された実際のグラフではなく、畳み込みを格納する。さらに、検索モジュール１３０は、グラフ形成モジュール１２０から得られたグラフの畳み込みを算出し、グラフデータベース１３１における検索は、グラフの算出済み畳み込みの畳み込みと、データベースに保持されたグラフの畳み込みとを比較することによって行われる。
【００６８】
システムのさらに別の変形態様では、フレキシブルハッシュ（ファジーハッシュ）がグラフの畳み込みとして使用される。
【００６９】
システムのさらに別の変形態様では、グラフの同型度が決定され、それに基づいてグラフの類似度が決定される。
【００７０】
分析モジュール１４０は、グラフ形成モジュール１２０および検索モジュール１３０から得られたグラフの分析結果に基づいて、コンピュータシステム内の悪意のあるアクティビティの検出に関する決定１４１を下すように設計されている。
【００７１】
システムの１つの変形態様では、グラフデータベース内で見つけられた少なくとも１つのグラフの有害度係数の分析、および当該グラフと形成されたグラフとの類似度に基づいて、コンピュータシステム内の悪意のあるアクティビティの検出に関する決定が下される。
【００７２】
例えば、分析対象のコンピュータシステムの要約有害度は次の公式で算出できる。
【数１】
2020109611.tif 000010
式中、
wは、分析対象のコンピュータシステムの有害度係数であり、
wjは、グラフデータベース１３１から選択されたｊ番目のグラフの有害度係数であり、
c｛i,j｝は、形成されたｉ番目のグラフとグラフデータベース１３１から選択されたｊ番目のグラフとの類似度であり、
Nは、分析対象のコンピュータシステムについて形成されたグラフの数であり、
Mは、グラフデータベース１３１から選択されたグラフの数である。
【００７３】
さらに別の例では、分析対象のコンピュータシステムの有害度係数wは０．０（コンピュータシステム内に悪意のあるアクティビティがない）から１．０（コンピュータシステム内に悪意のあるアクティビティがあった）までの範囲内であり得る。上述の有害度係数wmが所定の値（例えば０．７５）を超える場合、分析対象のコンピュータシステム内に悪意のあるアクティビティが検出された旨の決定が下される。
【００７４】
システムのさらに別の変形態様では、形成されたグラフの分析に基づいて、コンピュータシステム内の悪意のあるアクティビティの源であるオブジェクト１１１が決定される（図４、図５参照）。
【００７５】
一態様では、再訓練モジュール１５０は、分析モジュール１４０が下した決定１４１に基づいて選択モデル１１２を再訓練することができ、その結果、同じコンピュータシステムの有害度に関する分析を繰り返すと、収集モジュール１１０によって選択されたオブジェクト１１１の分析に基づいてグラフ形成モジュール１２０によってグラフを形成する間に、少なくとも:
・選択可能なオブジェクト１１１の数は最小になる傾向があり、この場合、これらのオブジェクト１１１およびオブジェクト１１１間の関係に関する情報の分析に基づいて分析モジュール１４０が下す決定は、精度が最高の決定となる傾向がある。すなわち、第１および第２の種類のエラー発生率が低くなる傾向がある（これはさらに、大量の統計サンプルに基づいて評価することができ、それまでに使用され所望の結果を得ている技術を使用して達成できる。そして、選択と評価は統計サンプルに基づき実行される。）;
・グラフ形成モジュール１２０によるグラフの形成のための計算資源の利用は、再訓練されていないモデルの使用中に選択されたオブジェクト１１１を使用する場合よりも少ない。
【００７６】
次に、コンピュータシステム内の悪意のあるアクティビティを検出するシステムの動作を、以下の例によって考察する:
【００７７】
ユーザは、以下のアクションを連続して実行する:
・パスワードを入力してリモートコンピュータにサインオンする。
・新しいサービスを作成する。
【００７８】
上記により、当該コンピュータシステムにおいて以下の変更が生じる:
・サービスの作成によりレジストリが変更される。
・サービスによりPowershellが起動される。
・Powershellによりファイルが作成される。
【００７９】
収集モジュール１１０は、コンピュータシステム１１１のオブジェクトに関する情報を収集する:
・オブジェクト＃１  −  ログ中のエントリ
・オブジェクト＃２  −  ログ中のエントリ
・オブジェクト＃３  −  レジストリ中のキー
・オブジェクト＃４  −  ログ中のエントリ
・オブジェクト＃５  −  ファイルシステム内のファイルの作成。
【００８０】
グラフ形成モジュール１２０は、収集されたオブジェクト１１１を基に、以下のデータに基づいて関係を構築する:
オブジェクト＃１（ログ中のエントリ）→［ユーザ名による関係］→…
…→オブジェクト＃２（ログ中のエントリ）→［サービス名による関係]→…
…→オブジェクト＃３  （レジストリ中のキー)→[レジストリキー内のファイル名による関係]→…
…→オブジェクト＃４（ログ中のエントリ）→［ログのファイル名による関係］…→
…→オブジェクト＃５（ファイルシステム内のファイルの作成）
【００８１】
図２は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティを検出する方法のフロー図である。
【００８２】
コンピュータシステム内の悪意のあるアクティビティを検出する方法のフロー図は、コンピュータシステムのオブジェクトに関する情報を収集するステップ２１０と、オブジェクト間の関係を決定するステップ２２０と、グラフを形成するステップ２３０と、要約グラフを形成するステップ２４０と、グラフを選択するステップ２５０と、悪意のあるアクティビティに関する決定を下すステップ２６０と、選択モデルを再訓練するステップ２７０とを含む。
【００８３】
ステップ２１０では、コンピュータシステム１１１のオブジェクトに関する情報を収集する。
【００８４】
本方法の特定の態様では、情報が収集されるオブジェクト１１１の選択は、訓練済み選択モデル１１２を使用して行われる。
【００８５】
ステップ２２０では、収集された情報の分析に基づいてオブジェクト１１１間の関係を決定する。各関係には関係の信頼度が割り当てられる。
【００８６】
本方法の１つの特定の態様では、互いの関係の信頼度が所定の閾値未満であるオブジェクト１１１は、悪意のあるアクティビティについてのコンピュータシステムのさらなる分析から除外される（すなわち、これらのオブジェクト１１１は本質的にグラフから除去され、以後の分析では使用されない）。
【００８７】
したがって、コンピュータシステムの有害度の分析に使用される計算資源の削減が達成される。
【００８８】
ステップ２３０では、見つかった関係（当該関係について確立された信頼度の使用を含む）に基づいて、少なくとも２つのグラフが形成される。グラフの直径は所定のパラメータ未満であり、グラフの頂点はオブジェクト１１１であり、エッジは見つかった関係である。
【００８９】
ステップ２４０では、形成されたグラフに基づいて要約グラフが形成され、要約グラフは第１および第２のグラフのうちの少なくとも１つの頂点と、これらの頂点を結ぶ１つのエッジとを含む。
【００９０】
ステップ２５０では、グラフデータベース１３１から、形成された要約グラフとの類似度が所定のレベルよりも大きい、少なくとも１つのグラフを選択する。グラフデータベースはコンピュータシステムのアクティビティについて以前に形成されたグラフを保持し、各グラフには、そのアクティビティの分析に基づいて悪意のあるアクティビティの係数が割り当てられる。
【００９１】
本方法の１つの変形態様では、悪意のあるアクティビティの係数の割り当ては、たとえば、アナリストによるグラフの分析に基づいて行うなど、先行技術によって知られている任意の方法によって行われる。
【００９２】
ステップ２６０では、形成されたグラフおよび選択されたグラフの分析の結果に基づいて、コンピュータシステム内の悪意のあるアクティビティの検出に関する決定が下される。
【００９３】
ステップ２７０では、選択モデル１１２は、ステップ２６０で下された決定１４１に基づいて再訓練される。このため、ステップ２１０で選択されたオブジェクト１１１の分析に基づいてステップ２３０でグラフを形成する間に、同じコンピュータシステムの有害度の分析を繰り返すと、少なくとも:
・選択可能なオブジェクト１１１の数は最小になる傾向があり、この場合、ステップ２６０において、これらのオブジェクト１１１に関する情報およびこれらのオブジェクト１１１間の関係の分析に基づいて下される決定は、精度が最高の決定となる傾向がある;
・ステップ２３０におけるグラフの形成のための計算資源の利用は、再訓練されていないモデルの使用中に選択されたオブジェクト１１１を使用する場合よりも少ない。
【００９４】
図３は、本開示の例示的な態様による、コンピュータシステムのオブジェクト間の関係の分析に基づいてグラフを形成するためのフロー図である。
【００９５】
コンピュータシステム１１１のオブジェクト間の関係の分析に基づいてグラフを形成するための図は、形成された初期グラフ３１０および３２０、結合グラフ３３０、および最適化グラフ３４０を含む。各グラフにおいて、グラフの頂点はコンピュータシステムのオブジェクト３０１、３０２、３０３である。
【００９６】
複数のオブジェクト３０１は異なるオブジェクトであると考えられるが（複数のオブジェクトは本質的には異なるが、便宜上全て同じ符号で表示する）、オブジェクト３０２および３０３は同じである。
【００９７】
初期グラフ３１０および３２０は、収集されたオブジェクト３０１、３０２、３０３およびそれらの間で識別された関係の分析に基づいて形成される。
【００９８】
図３において、実線はオブジェクト１１１間の機能関係を示し、点線は論理関係を示し、矢印はリンク付けと、リンク付けされたオブジェクトとを示す（すなわち、矢印は関係を誘発するオブジェクト１１１を始点として、そのオブジェクト１１１に関連するオブジェクト１１１に向かう）。例えば、ファイル「report.docx」が、ファイル「report.docx」、「report_old.docx」、「report_new.docx」を含む特定のアーカイブ「data.zip」から抽出される場合、矢印は、アーカイブ「data.zip」から、抽出されたファイル「report.docx」への機能関係を示す。
【００９９】
例えば、収集モジュール１１０はコンピュータシステム１１１のオブジェクトに関する情報を収集するために使用され、コンピュータシステムはいくつかの独立した構成要素（例えば、クライアントおよびサーバ）から構成することができ、異なる独立した構成要素から収集された前述のオブジェクト１１１も独立しているとみなすことができる。このようにして、いくつかの初期グラフが形成される。
【０１００】
さらに別の例では、コンピュータシステムは単一のもの（１つの独立した構成要素のみを含む）である。したがって、収集されたすべてのオブジェクト１１１は、従属していると見なすことができるものの、比較的独立した（少数の関係を有する）いくつかのグループに分割することもでき、それらについていくつかの初期グラフ（各グループにつき１つ）が構築される。
【０１０１】
例えば、悪意のあるプログラムがコンピュータシステム内で実行されている場合、複数の独立したモジュール（例えば、ディスクシステム、データベース、メモリ、電子ドキュメントなどで動作するモジュール）から構成され得る当該コンピュータシステム（バックドア）の遠隔制御を可能にし、「マスタ」からコマンドを受信して、当該悪意のあるプログラムは特定の悪意のあるアクションまたは許可されていないアクションを実行することができる。１つの特定の例では、悪意のあるプログラムは、「ドキュメントを暗号化する」コマンドと、「パスワードを取得する」コマンドという２つの異なるコマンドを受信する。この２つのアクションは独立して、悪意のあるプログラムの別々のモジュールによって実施することができる。このようなコンピュータシステムの分析では、２つの独立したグラフが構築され、そのうちの１つではオブジェクト１１１は大部分がファイル（ドキュメント）であり、他の１つではオブジェクト１１１はオペレーティングシステム・ログ内のエントリである。このような場合でも、２つのグラフ間の関係は、ネットワークアクティビティ（オペレーティングシステム・ログに同様に反映される）、アクティビティの源（悪意のあるプログラムのモジュール）、アクティビティの開始時間、ネットワークパケットなどによって追跡することができる。
【０１０２】
グラフ形成モジュール１２０は、初期グラフ３１０、３２０を形成する。初期グラフ３１０、３２０は、（頂点として）少なくとも２つの同一または類似のオブジェクト１１１（類似のオブジェクトとは、指定された分量以下の量だけ少なくとも１つのパラメータが互いに異なるオブジェクトである）を含む。例えば、初期グラフ３１０は、２つの同一のオブジェクト３０３を含む。
【０１０３】
結合グラフ３３０は、以前に形成された初期グラフ３１０および３２０に基づいて形成される。
【０１０４】
グラフ形成モジュール１２０は、結合グラフ３３０を形成するための基礎となる全ての初期グラフに存在する全ての同一又は類似のオブジェクト１１１を含むように、結合グラフ３３０を形成する。例えば、結合グラフ３３０は、初期グラフ３１０、３２０に存在する全てのオブジェクト３０２、３０３を含む。
【０１０５】
結合グラフ３３０は要約グラフとして見ることができ、これに基づいて、検索モジュール１３０は、そのグラフの以下の分析を実行する。この場合も、コンピュータシステム内の悪意のあるアクティビティを検出するシステムが必要とするコンピュータ資源（グラフデータベース内の空間、グラフを形成し、検索し、分析するための計算資源など）を削減するために、グラフ形成モジュール１２０は結合グラフ３３０の最適化を実行し、最適化グラフ３４０を形成する。
【０１０６】
最適化グラフ３４０は、以前に形成された結合グラフ３３０に基づいて形成される。
【０１０７】
グラフ形成モジュール１２０は、最適化グラフ３４０が全ての初期グラフおよび結合グラフに存在する全ての同一又は類似のオブジェクト１１１を含むように、最適化グラフ３４０を形成する。例えば、最適化グラフ３４０は、初期グラフ３１０、３２０および結合グラフ３３０に存在する全てのオブジェクト３０２、３０３を含む。
【０１０８】
ただし、これらのオブジェクト１１１に関連しないすべてのオブジェクトおよび関係（頂点およびエッジ）は、最適化グラフ３４０から除去することができる（白い円３０１として示される）。
【０１０９】
したがって最適化後には、上述のオブジェクト３０２、３０３に加えて、初期グラフ３１０、３２０を形成するステップで以前には存在しなかった関係が確立されたオブジェクト３０４を見つけることができる。
【０１１０】
最適化グラフ３４０は既に、結合グラフ３３０よりもコンパクトになっているため、この最適化グラフを使用して作業を進めることがより最適である。
【０１１１】
図４は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティの源を検出するシステム４００のブロック図である。
【０１１２】
コンピュータシステム内の悪意のあるアクティビティの源を検出するシステム４００のブロック図は、収集モジュール１１０、グラフ形成モジュール１２０、アクティビティ決定モジュール４１０、分析モジュール４２０、および判定モジュール４３０を含む。
【０１１３】
アクティビティ決定モジュール４１０は、以下を実行するように設計される:
・選択された部分グラフごとにアクティビティ係数を決定する。ここで、有害度係数は、当該部分グラフの頂点間のグラフの強度を記述する数値特性を表す;
・選択された部分グラフおよび有害度係数を分析モジュール４２０に送る。
【０１１４】
システムの１つの変形態様では、部分グラフの有害度係数は、当該部分グラフと、コンピュータシステムの悪意のあるアクティビティの以前に形成されたグラフを含むグラフデータベースの中の各々有害度係数が割り当てられている少なくとも１つの部分グラフとの類似度に基づいて決定される。
【０１１５】
この場合、グラフの部分グラフまたは誘導部分グラフは、グラフの頂点のサブセットと、このサブセットの頂点のペアを結ぶすべてのエッジとから形成される別のグラフである。
【０１１６】
システムのさらに別の変形態様では、部分グラフのアクティビティ係数は、当該部分グラフの頂点に関連するオブジェクトのうちの少なくとも１つのオブジェクトに悪意がある可能性を特徴付ける有害度係数である。
【０１１７】
一態様では、分析モジュール４２０は:
・部分グラフを決定する。決定された部分グラフにおいて:
−有害度係数は、部分グラフについて決定された有害度係数の最小値であり、
−当該部分グラフに関連する部分グラフの要約有害度係数（すなわち、部分グラフの有害度係数の合計、または部分グラフの有害度係数の代表値）は最大値である;
・見つかった部分グラフを判定モジュール４３０に送る。
【０１１８】
システムの１つの変形態様では、分析モジュール４２０は、因果関係に対応するエッジ（すなわち、機能関係ではなく論理関係に対応するエッジ）によって、他の部分グラフに関連する部分グラフを分析する。
【０１１９】
システムのさらに別の変形態様では、分析モジュール４２０は、直径が所定の閾値未満である部分グラフを分析する。
【０１２０】
判定モジュール４３０は、コンピュータシステム内の悪意のあるアクティビティの源として見つかった部分グラフの少なくとも１つの頂点に関連付けられたオブジェクト１１１を決定するように設計される。
【０１２１】
システムの一変形態様では、判定モジュール４３０は、これまでに知られていないオブジェクト１１１を悪意のあるアクティビティの源として選択する。
【０１２２】
図５は、本開示の例示的な態様による、コンピュータシステム内の悪意のあるアクティビティの源を検出する方法のフロー図である。
【０１２３】
コンピュータシステム内の悪意のあるアクティビティの源を検出する方法の構造図は、コンピュータシステムのオブジェクト１１１に関する情報を収集するステップ２１０（図２に図示）と、グラフを形成するステップ２３０（図２に図示）と、部分グラフを選択するステップ５１０と、有害度係数を決定するステップ５２０と、部分グラフを決定するステップ５３０と、悪意のあるアクティビティの源を決定するステップ５４０とを含む。
【０１２４】
ステップ２１０では、収集モジュール１１０を用いて、コンピュータシステムのオブジェクト１１１（以下、「オブジェクト」）に関する情報を収集する。
【０１２５】
ステップ２３０では、グラフ形成モジュール１２０を使用して、オブジェクト１１１について収集された情報に基づいてグラフを形成する。ここで、グラフの頂点はオブジェクト１１１であり、エッジは、収集された情報の分析に基づいて決定されたオブジェクト間の関係である。
【０１２６】
ステップ５１０では、アクティビティ決定モジュール４１０を使用して、形成されたグラフから少なくとも２つの誘導部分グラフ（以下、部分グラフ）を選択する。
【０１２７】
ステップ５２０では、アクティビティ決定モジュール４１０を使用して、選択された各部分グラフの有害度係数を決定する。有害度係数は当該部分グラフの頂点間の関係の強さを記述する数値特性である。
【０１２８】
ステップ５３０では、分析モジュール４２０を使用して、以下のような部分グラフを決定する:
・有害度係数が、部分グラフについて決定された有害度係数の最小値であり、
・当該部分グラフに関連する部分グラフの要約有害度係数は最大値である。
【０１２９】
ステップ５４０では、判定モジュール４３０を使用して、コンピュータシステム内の悪意のあるアクティビティの源として判定された部分グラフの少なくとも１つの頂点に関連付けられたオブジェクトを決定する。
【０１３０】
図６は、例示的な態様に従って、コンピュータシステム内の悪意のあるアクティビティの源を検出するためのシステムおよび方法の態様が実装され得るコンピュータシステム２０を示すブロック図である。なお、コンピュータシステム２０は例えば、先に説明したシステム１００に相当し得る。コンピュータシステム２０は、複数のコンピューティングデバイス、または単一のコンピューティングデバイス、例えば、デスクトップコンピュータ、ノート型コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋め込みデバイス、および他の形態のコンピューティングデバイスとすることができる。
【０１３１】
図示されるように、コンピュータシステム２０は、中央処理装置（CPU）２１と、システムメモリ２２と、中央処理装置２１に関連するメモリを含む様々なシステムコンポーネントを接続するシステムバス２３とを含む。システムバス２３は、バスメモリまたはバスメモリコントローラ、周辺バス、および他の任意のバスアーキテクチャとインタラクトすることができるローカルバスを含むことができる。バスの例としては、PCI、ISA、PCI−Express、HyperTransport（商標）、InfiniBand（商標）、Serial  ATA、I2C、および他の適切な相互接続が挙げられる。中央処理装置２１（プロセッサとも呼ばれる）は、単一または複数のコアを有する単一または複数のプロセッサ群を含むことができる。プロセッサ２１は、本開示の技術を実現する１つまたは複数のコンピュータ実行可能コードを実行することができる。システムメモリ２２は、ここで使用されるデータおよび／またはプロセッサ２１によって実行可能なコンピュータプログラムを記憶するための任意のメモリとすることができる。システムメモリ２２は、ランダムアクセスメモリ（RAM）２５などの揮発性メモリ、およびリードオンリメモリ（ROM）２４、フラッシュメモリなどの不揮発性メモリ、またはそれらの任意の組合せを含むことができる。基本入出力システム（BIOS）２６は、ＲＯＭ２４を使用してオペレーティングシステムをロードするときのような、コンピュータシステム２０の要素間で情報を転送するための基本手順を記憶することができる。
【０１３２】
コンピュータシステム２０は、１つまたは複数のリムーバブル記憶装置２７、１つまたは複数の非リムーバブル記憶装置２８、またはそれらの組合せなどの１つまたは複数の記憶装置を含むことができる。１つまたは複数のリムーバブル記憶装置２７および非リムーバブル記憶装置２８は、ストレージインタフェース３２を介してシステムバス２３に接続される。一態様では、記憶装置および対応するコンピュータ可読記憶媒体は、コンピュータシステム２０のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための独立電源型モジュールである。システムメモリ２２、リムーバブル記憶装置２７、および非リムーバブル記憶装置２８は、様々なコンピュータ可読記憶媒体を使用することができる。コンピュータ可読記憶媒体の例には、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、ツイントランジスタRAM、eDRAM、EDO  RAM、DDR  RAM、EEPROM、NRAM、RRAM（登録商標）、SONOS、PRAMなどの機械メモリ、ソリッドステートドライブ（SSD）またはフラッシュドライブなどのフラッシュメモリまたは他のメモリ技術、ハードディスクドライブまたはフロッピーディスクなどの磁気カセット、磁気テープ、および磁気ディスクストレージ、コンパクトディスク（CD-ROM）またはデジタル多用途ディスク（DVD）などの光ストレージ、ならびに所望のデータを記憶するために使用することができ、コンピュータシステム２０によってアクセスすることができる任意の他の媒体が含まれる。
【０１３３】
コンピュータシステム２０のシステムメモリ２２、リムーバブル記憶装置２７、および非リムーバブル記憶装置２８を使用して、オペレーティングシステム３５、追加のプログラムアプリケーション３７、他のプログラムモジュール３８、およびプログラムデータ３９を記憶することができる。コンピュータシステム２０は、キーボード、マウス、スタイラス、ゲームコントローラ、音声入力デバイス、タッチ入力デバイスなどの入力デバイス４０からデータを通信する周辺インタフェース４６、または、シリアルポート、パラレルポート、ユニバーサルシリアルバス（USB）などの１つまたは複数のI/Oポートを経由するプリンタもしくはスキャナなどの他の周辺デバイス、または、他の周辺インタフェースを含むことができる。１つまたは複数のモニタ、プロジェクタ、または統合ディスプレイなどのディスプレイ装置４７も、ビデオアダプタなどの出力インタフェース４８を介してシステムバス２３に接続することができる。コンピュータシステム２０は、ディスプレイ制御装置４７に加え、ラウドスピーカおよび他のオーディオビジュアル装置のような他の周辺出力装置（図示せず）を装備することができる。
【０１３４】
コンピュータシステム２０は、１つまたは複数のリモートコンピュータ４９へのネットワーク接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ４９は、コンピュータシステム２０の性質を説明する上述の要素の大部分またはすべてを含むローカルコンピュータワークステーションまたはサーバとすることができる。ルータ、ネットワーク局、ピアデバイス、または他のネットワークノードなどの他のデバイスも、コンピュータネットワーク内に存在し得るが、これらに限定されない。コンピュータシステム２０は、ローカルエリアコンピュータネットワーク（LAN）５０、ワイドエリアコンピュータネットワーク（WAN）、イントラネット、およびインターネットなどの１つまたは複数のネットワークを介してリモートコンピュータ４９と通信する１つまたは複数のネットワークインタフェース５１またはネットワークアダプタを含むことができる。ネットワークインタフェース５１としては、例えば、イーサネット（登録商標）インタフェース、フレームリレーインタフェース、SONETインタフェース、無線インタフェース等が挙げられる。
【０１３５】
本開示の態様は、システム、方法、および／またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令が格納されたコンピュータ可読記憶媒体（または複数の媒体）を含むことができる。
【０１３６】
コンピュータ可読記憶媒体は、コンピューティングシステム２０などのコンピューティングデバイスのプロセッサによってアクセスすることができる命令またはデータ構造の形態のプログラムコードを保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組合せとすることができる。例えば、このコンピュータ可読記憶媒体は、ランダムアクセスメモリ（RAM）、リードオンリメモリ（ROM）、EEPROM、ポータブルコンパクトディスクリードオンリメモリ（CD-ROM）、デジタル多用途ディスク（DVD）、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリスティック、フロッピー（登録商標）ディスク、あるいはパンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイスを含むことができる。本明細書で使用されるように、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または伝送媒体を通って伝播する電磁波、または有線で伝送される電気信号など、一時的な信号そのものであると解釈されるべきではない。
【０１３７】
本明細書で説明するコンピュータ可読プログラム命令は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および／またはワイヤレスネットワークなどのネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイスに、または外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および／またはエッジサーバを含むことができる。各コンピューティングデバイス内のネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティングデバイス内のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【０１３８】
本開示の処理を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ（ISA）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、LANまたはWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または（例えば、インターネットを介して）外部コンピュータに接続されてもよい。いくつかの態様では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ（FPGA）、またはプログラマブル論理アレイ（PLA）を含む電子回路は、本開示の態様を実行するために、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【０１３９】
様々な態様では、本開示で説明されるシステムおよび方法はモジュールによって対処することができる。本明細書で使用される「モジュール」という用語は、例えば、特定用途向け集積回路（ASIC）またはFPGAなどのハードウェアを使用して実装される、あるいは、マイクロプロセッサシステムおよび（実行されている間に）マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能を実装するための命令セットなどのハードウェアおよびソフトウェアの組合せとして実装される、現実世界のデバイス、コンポーネント、または構成要素の構成を指す。また、モジュールは２つの組み合わせとして実装されてもよく、特定の機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアとの組み合わせによって促進される。いくつかの実装形態ではモジュールの少なくとも一部、および場合によってはすべてが、コンピュータシステムのプロセッサ（上記の図６でより詳細に説明したものなど）上で実行され得る。したがって、各モジュールは、様々な適切な構成で実現されてもよく、本明細書で例示される任意の特定の実装形態に限定されるべきではない。
【０１４０】
明確にするため、本明細書では態様の一般的な特徴のすべてを開示しているわけではない。本開示の任意の実際の実装の開発において、開発者の特定の目標を達成するために、多数の実装固有の決定が行われなければならず、これらの特定の目標は、異なる実装および異なる開発者によって異なることが理解されるのであろう。そのような開発努力は複雑で時間がかかる可能性があるが、それにもかかわらず、本開示の恩恵を受ける当業者にとっては日常的なエンジニアリングの仕事であることが理解される。
【０１４１】
さらに、本明細書で使用される語法または用語は説明を目的としたものであり、限定を目的としたものではない。したがって、本明細書の語法または用語は、関連技術の当業者の知識と組み合わせて、本明細書で提示される教示およびガイダンスに照らして、当業者によって解釈されるべきであることを理解されたい。さらに、明細書または特許請求の範囲におけるいかなる用語も、そのように明示的に記載されていない限り、一般的ではない意味または特別な意味に帰することを意図していない。
【０１４２】
本明細書で開示される様々な態様は、例示として本明細書で言及される既知のモジュールに対する現在および将来の既知の同等物を包含する。さらに、態様および用途が示され、説明されてきたが、本明細書に開示された発明概念から逸脱することなく、上記よりも多くの変形例が可能であることは本開示の恩恵を受ける当業者には明らかであろう。
【図１】
2020109611.tif 000011
【図２】
2020109611.tif 000012
【図３】
2020109611.tif 000013
【図４】
2020109611.tif 000014
【図５】
2020109611.tif 000015
【図６】
2020109611.tif 000016
【外国語明細書】
2020109611000001.pdf