(57)【要約】複数の監視対象デバイスのシステムコンポーネントおよびイベントを表すモデルをデータオブジェクトとして本明細書に説明する。モデルは、セキュリティサービスクラウドに常駐して、システムコンポーネントおよびイベントに関するセキュリティ関連の情報がセキュリティサービスクラウドによって受信される時に実質的にリアルタイムで更新される。モデルの各データオブジェクトは、スコープを有し、異なるデータオブジェクトのスコープに応じて異なるアクションがセキュリティサービスクラウドモジュールによって行われる。さらに、セキュリティサービスクラウドは、その監視対象デバイスからのセキュリティ関連の情報が受信される時に実質的にリアルタイムで構築された各監視対象デバイスに固有のモデルを保持する。セキュリティサービスクラウドは、これらのデバイス固有のモデルを利用してセキュリティ上の懸念を検出して、実質的にリアルタイムでそれらの懸念に応答する。
2017522653.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサと、
複数の監視対象デバイスのシステムコンポーネントおよびイベントをデータオブジェクトとして表すモデルであって、各データオブジェクトがスコープを有する、モデルと、
前記１つまたは複数のプロセッサによって複数の異なるアクションのうちの１つを実行されるように構成された１つまたは複数のモジュールであって、前記複数の異なるアクションのうちの前記１つが前記データオブジェクトのうちの前記１つの前記スコープに基づいて選択される、１つまたは複数のモジュールを備えたことを特徴とするシステム。
【請求項２】
前記スコープは、デバイス固有のスコープ、デバイス−グループのスコープ、またはグローバルスコープのうちの１つであることを特徴とする請求項１に記載のシステム。
【請求項３】
各データオブジェクトは、グラフの頂点として表され、および前記頂点を接続するエッジは、前記データオブジェクトによって表される前記システムコンポーネント間またはイベント間の関係を表すことを特徴とする請求項１に記載のシステム。
【請求項４】
前記監視対象デバイスのうちの複数のデバイス上に提示されるシステムコンポーネントは、デバイス固有のスコープを有する第１のデータオブジェクト、グループ固有のスコープを有する第２のデータオブジェクト、グローバルスコープを有する第３のデータオブジェクトを含む３つのデータオブジェクトによって前記モデルにおいて表されることを特徴とする請求項１に記載のシステム。
【請求項５】
前記第１のデータオブジェクトの新しいプロパティを前記第２のデータオブジェクトおよび前記第３のデータオブジェクトに、それらが共有する前記システムコンポーネントの関連付けに基づいて伝播するモジュールをさらに備えることを特徴とする請求項４に記載のシステム。
【請求項６】
前記１つまたは複数のモジュールは、前記第１のデータオブジェクトから前記第２のデータオブジェクトおよび前記第３のデータオブジェクトへの前記新しいプロパティの前記伝播の少なくとも一部に基づいて、前記複数の異なるアクションのうちの前記１つを選択するようにさらに構成されることを特徴とする請求項５に記載のシステム。
【請求項７】
前記１つまたは複数のモジュールは、システムコンポーネントまたは振る舞いが任意の監視対象デバイス上で最初にグローバルに観察されるかどうか、または前記システムコンポーネントまたは振る舞いが固有の監視対象デバイス上で最初に観察されるがすでに別の監視対象デバイス上で観察されたかどうかに基づいて異なるアクションを行うことを特徴とする請求項１に記載のシステム。
【請求項８】
構成に基づいて、イベントのセットが前記モデルのデータオブジェクトの作成、更新、またはリンク設定にマッピングされることを判定し、
前記データオブジェクトの前記作成、更新、またはリンク設定をさせるイベントを出力するためのルーティングモジュールをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項９】
前記出力イベントを前記ルーティングモジュールから受信することに応答して前記モデルを更新するモジュールをさらに備えることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記モジュールは、出力イベントが受信される時に実質的にリアルタイムで前記モデルを更新することを特徴とする請求項９に記載のシステム。
【請求項１１】
リクエスタのために前記モデルにクエリを行い、前記クエリからの結果にメタデータを付加し、および前記付加されたメタデータを有する前記結果を前記リクエスタに提供するクエリインタフェースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１２】
前記クエリインタフェースは、前記クエリからの前記結果において参照された前記データオブジェクトのスコープに基づいてグループ内またはグループ間のセキュリティ上の懸念の拡がりをさらに判定することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記スコープは、前記モデルのいくつかのデータオブジェクトの明示的なプロパティであり、および前記モデルの別のデータオブジェクトの暗黙的なプロパティであることを特徴とする請求項１に記載のシステム。
【請求項１４】
セキュリティ関連の情報を監視対象デバイスから受信するステップと、
前記セキュリティ情報が受信される時に実質的にリアルタイムで前記監視対象デバイスに固有のモデルの前記セキュリティ関連の情報を表すステップと、
前記セキュリティ関連の情報が表される時に実質的にリアルタイムで、前記モデルの前記セキュリティ関連の情報と関連付けられたセキュリティ上の懸念を検出するステップと、
前記セキュリティ上の懸念の検出に応答して、前記セキュリティ上の懸念が検出される時に実質的にリアルタイムで、前記モデルにおいて表される前記セキュリティ関連の情報および複数の監視対象デバイスから受信されるセキュリティ関連の情報の少なくとも一部に基づいて、アクションを行うステップを備えることを特徴とするセキュリティサービスクラウドの１つまたは複数のデバイスによって実装される方法。
【請求項１５】
複数の監視対象デバイスから受信される前記セキュリティ関連の情報を表す別のモデルからの情報または前記セキュリティ上の懸念の検出に応答して１つまたは複数の他のソースからの情報をさらに集めることをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記１つまたは複数の他のソースは、他のデバイス固有のモデルを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記監視対象デバイスに固有の前記モデルは、前記監視対象デバイスに固有の前記モデルを保持することに関与しているアクタモジュールと関連付けられることを特徴とする請求項１４に記載の方法。
【請求項１８】
前記アクションを行うことは、前記監視対象デバイスのエージェントの構成を更新すること、前記監視対象デバイスへのアクションをトリガすること、または前記監視対象デバイスの実行時データを更新することのうちの少なくとも一つを備えることを特徴とする請求項１４に記載の方法。
【請求項１９】
前記検出は、前記セキュリティサービスクラウドの異なるモジュールによって異なるセキュリティ上の懸念を検出することを備え、前記異なるモジュールはそれぞれ、１つまたは複数の異なるセキュリティ上の懸念を検出するように構成されることを特徴とする請求項１４に記載の方法。
【請求項２０】
１つまたは複数のコンピューティングデバイスによって実行される時に、前記１つまたは複数のコンピューティングデバイスにアクションを実行させる複数のプログラミング命令を格納している１つまたは複数の非一時的なコンピュータ可読媒体であって、前記アクションは、
複数の監視対象デバイスのシステムコンポーネントまたはイベントと関連付けられたセキュリティ関連の情報を受信することと、
前記セキュリティ関連の情報が受信される時に実質的にリアルタイムで、前記複数の監視対象デバイスの前記システムコンポーネントまたはイベントをデータオブジェクトとして表すグラフモデルを更新することと、
前記システムコンポーネントまたはイベントが表される時に実質的にリアルタイムで、
前記表されたシステムコンポーネントまたはイベントと関連付けられたセキュリティ上の懸念を検出することと、
前記セキュリティ上の懸念を前記グラフモデルの検出データオブジェクトとして表すことを含むことを特徴とする１つまたは複数の非一時的なコンピュータ可読媒体。
【請求項２１】
前記アクションは、セキュリティ関連の情報を見つけるための検索インデックスを、前記グラフモデルをトラバースすることを必要とせずに作成することをさらに含むことを特徴とする請求項２０に記載の１つまたは複数の非一時的なコンピュータ可読媒体。
【請求項２２】
前記アクションは、前記検出することおよび前記表すことを実行するように構成される１つまたは複数のワーカモジュールによって、メッセージキューを介して前記グラフモデルに対する前記更新の通知を受信することをさらに含むことを特徴とする請求項２０に記載の１つまたは複数の非一時的なコンピュータ可読媒体。
【請求項２３】
前記アクションは、前記セキュリティ上の懸念の検出に応答して付加的な分析を実行することをさらに含むことを特徴とする請求項２０に記載の１つまたは複数の非一時的なコンピュータ可読媒体。
【請求項２４】
前記アクションは、前記データオブジェクトに関連するが前記グラフモデルにおいて表されていない付加的なデータを格納することをさらに含むことを特徴とする請求項２０に記載の１つまたは複数の非一時的なコンピュータ可読媒体。
【請求項２５】
前記データオブジェクトは、プロセス、プロセスのモジュール、プロセスの実行連鎖、イベント検出、またはパターンヒットを表すことを特徴とする請求項２０に記載の１つまたは複数の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１４年６月６日に出願された米国特許出願第１４／２９７，９７４号の優先権を主張する。米国特許出願第１４／２９７，９７４号は、本明細書に参照により完全に組み込まれる。
【背景技術】
【０００２】
インターネットの使用が日常生活でますます大きな部分を占めるにつれ、システム資源、データ、および個人情報を盗むか、または破壊するセキュリティエクスプロイトの問題が深刻化している。政府および企業は、これらのセキュリティエクスプロイトに関連する侵入および盗用を防ぐためにかなりの量の資源を費やす。セキュリティエクスプロイトは、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、キーストロークロガー、アドウェア、およびルートキットなど、さまざまな形で現れる。これらのエクスプロイトは、スピアフィッシュ電子メール、クリッカブルリンク、ドキュメント、実行ファイル、またはアーカイブなど、いくつかの機構に送られるか、またはそれらの機構を介して配信される。セキュリティエクスプロイトによってもたらされる脅威のいくつかは、サイバーテロリズムまたは産業スパイと言われる重大なものである。
【０００３】
これらのセキュリティエクスプロイトによってもたらされる脅威に対処するために、システム性能および状態のレトロスペクティブ分析の能力があるいくつかのツールが開発された。例えば、Ｓａｍｕｅｌ  Ｔ．  Ｋｉｎｇ氏とＰｅｔｅｒ  Ｍ．Ｃｈｅｎ氏による（ＡＣＭ  ＳＩＧＯＰＳ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｒｅｖｉｅｗ−ＳＯＳＰ  ‘０３，  Ｖｏｌｕｍｅ  ３７．Ｉｓｓｕｅ  ５．Ｄｅｃｅｍｂｅｒ  ２００３．ｐｇｓ．２２３−２３６）「Ｂａｃｋｔｒａｃｋｉｎｇ  Ｉｎｔｒｕｓｉｏｎｓ」に記載のＢａｃｋＴｒａｃｋｅｒツールは、システムのアクティビティとデータの包括的なログを分析することによって、侵入で発生したステップの潜在的シーケンスを自動的に特定する。このようなツールは、セキュリティエクスプロイトおよびそれらの操作方法を検出することができるが、遡及的に動作することしかできず、従って不利な立場で攻撃される場所は、常に攻撃者の後手に回る。さらに、これらの技術は典型的には、単独のデバイスの記録にしか動作することができず、従って、新しい振る舞いまたは異常な振る舞いが疑われるかどうかの判定に重要となる、他のデバイス上で発生するアクティビティのコンテキストがない。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓａｍｕｅｌ  Ｔ．  Ｋｉｎｇ氏とＰｅｔｅｒ  Ｍ．Ｃｈｅｎ氏による（ＡＣＭ  ＳＩＧＯＰＳ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｒｅｖｉｅｗ−ＳＯＳＰ  ‘０３，  Ｖｏｌｕｍｅ  ３７．Ｉｓｓｕｅ  ５．Ｄｅｃｅｍｂｅｒ  ２００３．ｐｇｓ．２２３−２３６）「Ｂａｃｋｔｒａｃｋｉｎｇ  Ｉｎｔｒｕｓｉｏｎｓ」
【図面の簡単な説明】
【０００５】
詳細な説明は、添付図面を参照して記載されている。図面において、参照番号の一番左の数字（複数）は、参照番号が最初に現れる図面を特定する。異なる図面における同じ参照番号の使用は、同様のまたは同一の項目または特徴を示す。
【図１】複数のグループの複数のデバイスを監視してそれらのデバイスのコンポーネントとイベントをモデルのデータオブジェクトとして表すセキュリティサービスクラウドを示す図である。セキュリティサービスクラウドは、デバイスからの情報が受信される時に実質的にリアルタイムでモデルを構築する。
【図２】例示的なモデルのデータオブジェクト、それらの関係を例示し、そしてそれらの異なるスコープを描いた図である。
【図３】セキュリティ関連の情報を１つまたは複数のイベントとして監視対象デバイスから受信し、それらのイベントをモデルのデータオブジェクトの作成、更新またはリンク設定にマッピングし、そしてモデルを更新する、セキュリティサービスクラウドの例示的なモデル管理モジュール（複数）を例示する図である。
【図４】モデル管理モジュール（複数）のイベントを受信するため、およびモデル管理モジュール（複数）から出力を受信するためのメッセージキュー、ならびにモデルの検出イベントおよび検索インデックスを生成するためのモデルワーカモジュール（複数）を例示する図である。
【図５】セキュリティサービスクラウドデバイスとして機能する能力があるコンピューティングデバイスのコンポーネントレベルビューを例示する図である。
【図６】セキュリティサービスクラウドによって、複数の監視対象デバイスの状態のモデルを実質的にリアルタイムで構築し、そしてモデルのデータオブジェクトのスコープを利用して異なるセキュリティアクションを実行するための例示的なプロセスを例示する図である。
【図７】セキュリティサービスクラウドによって、複数の監視対象デバイスの状態のモデルを実質的にリアルタイムで構築し、更新されたモデルに基づいてセキュリティ上の懸念を検出し、そしてそれらのセキュリティ上の懸念を表すモデルに検出データオブジェクトを付加するための例示的なプロセスを例示する図である。
【図８】セキュリティサービスクラウドによって、監視対象デバイスに固有のモデルを構築し、そして実質的にリアルタイムでデバイス固有のモデルに基づいてセキュリティ上の懸念を検出して、それらの懸念に応答するための例示的なプロセスを例示する図である。
【発明を実施するための形態】
【０００６】
概要
本開示は、一部は、複数の監視対象デバイスのシステムコンポーネントおよびイベントを表すモデルをデータオブジェクトとして説明する。このようなシステムコンポーネントの例は、プロセスおよびモジュールを含み、イベントの例は、実行連鎖、イベント検出、およびパターンヒットを含む。エージェントは、監視対象デバイスのそれぞれに常駐することができ、そしてイベントをリモートセキュリティサービスクラウドに出力することができ、出力イベントは、そのデバイスのシステムコンポーネントおよびイベントに関するセキュリティ関連の情報を伝える。セキュリティサービスクラウドは、それらの出力イベントを受信し、そして実質的にリアルタイムで出力イベントに基づいてモデルを更新する。グラフモデルとなるモデルは、セキュリティサービスクラウドに常駐して、監視対象デバイスのシステムコンポーネントおよびイベントをモデルの頂点として機能するデータオブジェクトとして表す。それらの頂点を接続するエッジは、システムコンポーネントまたはイベント間の関係を表すことができる。例えば、プロセスを表す２つの頂点を接続するエッジは、それらのプロセス間の親−子関係を表すことができる。セキュリティサービスクラウドは、出力イベントが受信される時にリアルタイムでモデルを構築する、モデル管理モジュール（複数）を含むことができる。
【０００７】
さまざまな実施形態において、モデルに含まれるデータオブジェクトはそれぞれ、スコープと関連付けることができる。例えば、モジュールに関するセキュリティ関連の情報を提供する出力イベントを監視対象デバイスから受信することができる。そのイベントがその監視対象デバイスから受信したモジュールと関係付けられた最初の情報であれば、モデル管理モジュール（複数）は、データオブジェクトを、そのデータオブジェクトのデバイス固有のスコープを示すプロパティを用いてモデルに付加する。グループ固有のスコープまたはグローバルスコープのデータオブジェクトがそのモジュールに存在しなければ、モデル管理モジュール（複数）は、１つのオブジェクトがグループ固有のスコープを有してもう１つのオブジェクトがグローバルスコープを有する、モジュールのデータオブジェクトを作成する。同じモジュールに複数のデータオブジェクトを有するので、異なるスコープを有する各データオブジェクトは、セキュリティ上の懸念に対してよりインテリジェントな応答が可能になる。例えば、特定のデバイス上のモジュールと最初に関連付けられた新しい振る舞いが観察されると、それが懸念である場合もあるし懸念でない場合もある。しかしその振る舞いがまだグローバルに観察されてなければ、関心のあるまたは懸念である可能性がずっと高い。従って、データオブジェクトの異なるスコープによって、いくつかの異なるセキュリティアクションから選択できるようになる。
【０００８】
さらに、セキュリティサービスクラウドは、その監視対象デバイスからのセキュリティ関連の情報が受信される時に実質的にリアルタイムで構築された各監視対象デバイスに固有のモデルを保持する。セキュリティサービスクラウドは、これらのデバイス固有のモデルを利用してセキュリティ上の懸念を検出して、実質的にリアルタイムでそれらの懸念に応答する。
【０００９】
例示的なネットワーク
図１は、複数のグループの複数のデバイスを監視してそれらのデバイスのコンポーネントとイベントをモデルのデータオブジェクトとして表すセキュリティサービスクラウドを示している。セキュリティサービスクラウドは、デバイスからの情報が受信される時に実質的にリアルタイムでモデルを構築する。図１で例示されるように、セキュリティサービスクラウドデバイス１０２（「セキュリティサービスクラウド１０２」とも呼ばれる）は、複数の監視対象デバイス１０４から、さらに複数の監視対象デバイス１０６からネットワーク１０８経由でセキュリティ関連の情報を監視および受信することができる。監視対象デバイス１０４は、監視対象デバイス１０４をグループネットワーク１１０経由でネットワーク１０８に接続することができる顧客または他のエンティティなどのグループの一部になり得る。監視対象デバイス１０６もまた、監視対象デバイス１０６をグループネットワーク１１２経由でネットワーク１０８に接続することができるグループの一部になり得る。監視対象デバイス１０４と１０６はそれぞれ、セキュリティ関連の情報を含むイベントをセキュリティサービスクラウド１０２に提供することができるエージェント１１４を構成することができる。次にセキュリティサービスクラウド１０２は、エージェント１１４と対話するセキュリティモジュール１１６、監視対象デバイス１０４と１０６の状態を表すグラフモデル１１８、エージェント１１４によって出力されるイベントに基づいてグラフモデル１１８を更新するモデル管理モジュール（複数）１２０、およびグラフモデル１１８に基づいてアクションを行うモデルワーカモジュール（複数）１２２を含むことができる。
【００１０】
さまざまな実施形態において、セキュリティサービスクラウド１０２は、エージェント１１４の保守および構成、エージェント１１４が構成された監視対象デバイス１０４と１０６の状態をグラフモデル１１８経由で追跡すること、脅威モデリング、および／または修復などの、個々のユーザおよび加入者エンティティに対する情報セキュリティサービスのプロバイダであってよい。例示的なセキュリティサービスクラウド１０２は、２０１２年１２月２７日に出願された「Ｒｅａｌ−Ｔｉｍｅ  Ｒｅｐｒｅｎｓｅｎｔａｔｉｏｎ  ｏｆ  Ｓｅｃｕｒｉｔｙ−Ｒｅｌｅｖａｎｔ  Ｓｙｓｔｅｍ  Ｓｔａｔｅ」と題する米国特許出願第１３／７２８，７４６号においてより詳細に説明されており、その開示内容は、この参照によりそのすべてが本明細書に組み込まれる。
【００１１】
セキュリティサービスクラウド１０２を実装するデバイスはそれぞれ、サーバまたはサーバファーム、複数の分散サーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、メディアセンター、組み込みシステム、またはその他の種類のデバイスまたはデバイス群にするか、または含むことができる。一実装において、セキュリティサービスクラウド１０２を実装するデバイスは、クラウドコンピューティングネットワークのノードなど、通信中に作業する複数のコンピューティングデバイスを表す。複数のコンピューティングデバイスに実装される場合、セキュリティサービスクラウド１０２は、セキュリティサービスクラウド１０２のモジュールおよびデータ１１６−１２６を複数のコンピューティングデバイスに分散することができる。いくつかの実装において、セキュリティサービスクラウド１０２を実装するデバイスのうちの１または複数は、１つまたは複数のコンピューティングデバイスに実装される１つまたは複数の仮想マシンを表す。セキュリティサービスクラウド１０２を実装するデバイスとして機能する能力がある例示的なコンピューティングデバイスを図５に例示し、その図面を参照して以下に説明する。
【００１２】
いくつかの実施形態において、監視対象デバイス１０４と１０６はそれぞれ、サーバまたはサーバファーム、複数の分散サーバファーム、メインフレーム、ワークステーション、ＰＣ、ラップトップコンピュータ、タブレットコンピュータ、ＰＤＡ、携帯電話、メディアセンター、組み込みシステム、またはその他の種類のデバイスまたはデバイス群になり得る。複数のコンピューティングデバイスに実装される場合、監視対象デバイス１０４／１０６は、エージェント１１４を複数のコンピューティングデバイスに分散することができる。いくつかの実装において、監視対象デバイス１０４／１０６は、１つまたは複数のコンピューティングデバイスに実装される１つまたは複数の仮想マシンを表す。
【００１３】
さまざまな実施形態において、ネットワーク１０８とグループネットワーク１１０および１１２はそれぞれ、有線ネットワーク、無線ネットワーク、および有線ネットワークと無線ネットワークの組み合わせなど、１つまたは複数の任意のネットワークを含むことができる。さらに、ネットワーク１０８とグループネットワーク１１０および１１２は、複数の異なるタイプのパブリックまたはプライベートネットワーク（例えば、ケーブルネットワーク、インターネット、無線ネットワークなど）のいずれか１つまたはその組み合わせを含むことができる。例えば、ネットワーク１０８は、パブリックネットワークである場合もあり、グループネットワーク１１０および１１２のうちの１つまたは両方は、プライベートネットワークである場合もある。場合によっては、コンピューティングデバイスは、セキュアなプロトコル（例えば、ｈｔｔｐｓ）および／またはその他のプロトコルまたはトランスミッションコントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）などのプロトコルのセットを使用してネットワーク１０８とグループネットワーク１１０および１１２上で通信する。
【００１４】
さまざまな実施形態において、監視対象デバイス１０４とグループネットワーク１１０は、第１のエンティティと関連付けることができ、監視対象デバイス１０６とグループネットワーク１１２は、第２のエンティティと関連付けることができる。第１のエンティティと第２のエンティティはそれぞれ、企業、政府、または他の団体などのエンティティの例にすることができるか、または単独のユーザまたはユーザのグループと関連付けることができる。そのエンティティまたはそれらのユーザ（複数）は、エンティティ／ユーザ（複数）の監視対象デバイス１０４と１０６のアクティビティを監視することができるセキュリティサービスクラウド１０２にセキュリティサービスを予約することができる。いくつかの実施形態において、その監視は、監視対象デバイス１０４と１０６の実行アクティビティを監視して、セキュリティ関連の情報をセキュリティサービスクラウド１０２に提供することを監視対象デバイス１０４と１０６上のエージェント１１４にインストールすることに関与し得る。
【００１５】
エージェント１１４は、いくつかの実施形態において、カーネルレベルセキュリティエージェントになり得る。このようなカーネルレベルセキュリティエージェントはそれぞれ、監視対象デバイス１０４／１０６のそれぞれの実行アクティビティと関連付けられたイベントの通知を受信するイベントコンシューマ、フィルタ、イベントを他のエージェントモジュール（複数）に経路指定するイベントバス、イベントのタイプを追跡する相関器、状態情報を集めてイベントを作動させるアクタ、および状況モデルを含むことができる。カーネルレベルセキュリティエージェントはそれぞれ、セキュリティサービスクラウド１０２によってインストールされて構成可能にすることができ、エージェントのモジュール（複数）とエージェントの状況モデルの再構成が、動作（live）中に受信され、適用される。さらに、カーネルレベルセキュリティエージェントはそれぞれ、イベントをリモートセキュリティサービスクラウド１０２に出力することができ、イベントは、そのエージェント１１４によって判定されるセキュリティ関連の情報を含む。例示的なカーネルレベルセキュリティエージェントは、２０１２年６月８日に出願された「Ｋｅｒｎｅｌ−Ｌｅｖｅｌ  Ｓｅｃｕｒｉｔｙ  Ａｇｅｎｔ」と題する米国特許出願第１３／４９２，６７２号明細書においてより詳細に説明されており、この参照によりそのすべてが本明細書に組み込まれる。
【００１６】
いくつかの実施形態において、エージェント１１４は、仮想プライベートネットワーク（ＶＰＮ）トンネルなどのセキュアなチャネルまたは他の種類のセキュアなチャネル経由でセキュリティサービスクラウド１０２に接続され、そしてセキュリティ関連の情報を伝えるイベントをセキュアなチャネルを介してセキュリティサービスクラウド１０２に提供することができる。エージェント１１４はまた、セキュリティサービスクラウド１０２からセキュアなチャネル経由で構成の更新、命令、修復などを受信することもできる。例示的なセキュアなチャネルを図４に示し、その図面を参照して以下に説明する。
【００１７】
さまざまな実施形態において、図１に示すように、セキュリティサービスクラウド１０２は、監視対象デバイス１０４と１０６がエージェント１１４によって出力されるイベント経由でどんなセキュリティ関連の情報をセキュリティサービスクラウド１０２に提供すべきかを指定するように監視対象デバイス１０４と１０６を構成するセキュリティモジュール１１６を含む。このようなセキュリティ関連の情報は、単独の監視対象デバイス１０４と１０６上での分離が重要であるなしに関わらず、複数の監視対象デバイス１０４／１０６からいつ受信されるかが重要である情報である。代替として、セキュリティ関連の情報は、システムコンポーネントまたは監視対象デバイス１０４と１０６の実行アクティビティと関連付けられた監視対象デバイス１０４と１０６のイベントに関する任意の情報を含むことができる。
【００１８】
さらなる実施形態において、セキュリティサービスクラウド１０２は、監視対象デバイス１０４と１０６の状態を表すグラフモデル１１８を構築して保持することができる。このような状態は、現在の状態、過去の状態、またはその両方を含むことができる。セキュリティサービスクラウド１０２は、監視対象デバイス１０４と１０６の構成に応答して、グラフモデル１１８を構築するために使用されるイベントのセキュリティ関連の情報を監視対象デバイス１０４と１０６から受信することができる。このようなセキュリティ関連の情報は、セキュリティ関連の情報と関連付けられる実行アクティビティが観察された時に実質的にリアルタイムで受信することができる。セキュリティ関連の情報は、プロセスおよびモジュールなどの監視対象デバイスのシステムコンポーネントを、アクティビティの検出、実行パターン（パターンヒット）、または実行アクティビティの連鎖の認識、またはその両方などの監視対象デバイス１０４と１０６のイベントに関係付けることができる。これらのシステムコンポーネントまたはイベントは、グラフモデル１１８の頂点を形成することができるデータオブジェクトとして表され、これらのシステムコンポーネントまたはイベント間の関係（例えば、プロセス間の親−子関係）は、グラフモデル１１８のエッジとして表される。
【００１９】
さまざまな実施形態において、グラフモデル１１８は、任意の種類のデータベース、ファイル、または情報を格納する能力があるデータのコレクションに格納することができる。データベースは、グラフモデル１１８を形成するテーブルなどの、データオブジェクトの構成可能なセットを有するストアである。各データオブジェクトは、データベースがデータを格納するオブジェクトのタイプを表すことができ、識別子によってインデックス化され得る。各データオブジェクトは、インデックスフィールド、オブジェクトタイプ（例えば、プロセスオブジェクト、モデルオブジェクト、ツリーオブジェクト、検出オブジェクト、パターンヒットオブジェクトなど）、データオブジェクトと関係のある他のオブジェクトの表示、ならびにそれらの関係のタイプの表示、データオブジェクトのスコープ（例えば、デバイス固有のスコープ、グループ固有のスコープ、グローバルスコープ）、他のモデル化されたデータ属性（例えば、セキュリティ関連の情報）などを含むことができる。いくつかのオブジェクトタイプ（例えば、検出オブジェクトまたはパターンヒットオブジェクト）では、データオブジェクトのスコープは、暗黙的（例えば、デバイス固有のスコープに暗黙的）となり、このようなデータオブジェクトは、スコープのプロパティまたはフィールドを含まない。他のオブジェクトタイプでは、スコープは、データオブジェクトのフィールドまたはプロパティに明示的に宣言される。
【００２０】
データオブジェクトはまた、データオブジェクトのラベルまたは分類子として機能するデータオブジェクトのメタデータである、タグを含むこともできる。タグは、文字列、整数、ハッシュ、バイナリフラグ、またはその他の効率的な表現であってよい。タグは、報告、意思決定、およびイベント生成のためにデータオブジェクトのフィルタリングを可能にして、再符号化または再コンパイルを必要とせずにデータオブジェクトの再分類ができるようにする。データオブジェクトのプロパティおよびフィールドは、タグの例である。２０１４年１月３１日に出願された「Ｔａｇｇｉｎｇ  Ｓｅｃｕｒｉｔｙ−Ｒｅｌｅｖａｎｔ  Ｓｙｓｔｅｍ  Ｏｂｊｅｃｔｓ」と題する米国特許出願第１４／１６９，４０１号においてタグがより詳細に説明されている。米国特許出願第１４／１６９，４０１号は、この参照により本明細書に組み込まれる。
【００２１】
グラフモデル１１８のデータベースのデータオブジェクトの例を図２で例示する。図２は、複数のデータオブジェクトをグラフモデル１１８の頂点として例示し、データオブジェクトによって表されるシステムコンポーネントまたはイベントの関係を示し、そしてデータオブジェクトのスコープを示す。図示されたように、各データオブジェクトは、デバイス固有のスコープ２０２、グループ固有のスコープ２０４、またはグローバルスコープ２０６を有することができる。例えば、グラフモデル１１８のデータベースは、３つのプロセスオブジェクト２０８を含むことができる。これらのプロセスオブジェクト２０８の２つの間のエッジは、それらのプロセスオブジェクト２０８によって表されるプロセス間の親−子関係を表すことができる。プロセスオブジェクト２０８とツリーオブジェクト２１０の２つの間のエッジは、それらのプロセスオブジェクトと関連付けられたプロセスがツリーオブジェクト２１０と関連付けられたツリーによって表される実行連鎖の一部であることを表すことができる。デバイス固有のスコープ２０２を有するモジュールオブジェクト２１２と関連付けられたモジュールは、そのモジュールオブジェクト２１２のエッジで接続されているプロセスオブジェクト２０８と関連付けられたプロセスのモジュールとすることができる。モジュールオブジェクト２１２は次に、グループ固有のスコープ２０４を有する対応するモジュールオブジェクト２１２のエッジで接続され、そしてグループ固有のスコープ２０４を有する対応するモジュールオブジェクト２１２は、グローバルスコープ２０６を有する対応するモジュールオブジェクト２１２のエッジで接続される。
【００２２】
「グループ固有の」スコープ２０４は、そのスコープを有するデータオブジェクトが単独のグループ／エンティティに属する監視対象デバイスのコレクションと関連付けられていることを意味する。例えば、グループ固有のスコープ２０４を有するモジュールオブジェクト２１２は、グループネットワーク１１２と監視対象デバイス１０６を有するグループと関連付けることができる。「グローバルな」スコープ２０６は、そのスコープを有するデータオブジェクトがグラフモデル１１８で表されるすべての監視対象デバイス１０４および１０６と関連付けられることを意味する。グループ固有のスコープ２０４またはグローバルスコープ２０６を有するデータオブジェクトは、さまざまな条件に応答してモデル管理モジュール（複数）１２０によって作成され得る。モデル管理モジュール（複数）１２０によるこのようなデータオブジェクトの作成は、図３に関連してさらに詳細に説明されている。
【００２３】
さまざまな実施形態において、セキュリティモジュール１１６は、グラフモデル１１８が構築される時に実質的にリアルタイムでグラフモデル１１８の異なるデータオブジェクトのスコープに応じて異なるアクションを行う。例えば、コンポーネントまたは振る舞いは、最初はいずれの監視対象デバイス１０４／１０６にもグローバルに観察され、デバイス固有のスコープを有するデータオブジェクトのみのプロパティとして表されるが、対応するグループ固有のスコープまたはグローバルスコープのデータオブジェクトで表されない。これは、モデル管理モジュール（複数）１２０によって通知されて、疑わしいコンポーネント／振る舞いを有する監視対象デバイス１０４／１０６からさらなる情報を収集すること、その監視対象デバイス１０４／１０６のエージェント１１４を再構成すること、または監視対象デバイス１０４／１０６に修復／回復を実行することなどの、セキュリティモジュール１１６によるアクションをトリガすることができる。
【００２４】
別の例において、コンポーネントまたは振る舞いは、他の監視対象デバイス（複数）１０４／１０６上ですでに観察された固有の監視対象デバイス１０４／１０６上で最初に観察することができる。これもまたモデル管理モジュール（複数）１２０によって通知されて、セキュリティモジュール１１６によってアクションをトリガすることができる。このようなアクションは、コンポーネントまたは振る舞いが最初にグローバルにまたは固有のグループに遭遇すれば、異なるアクション（例えば、ある期間まで待機して再チェックする）になる。
【００２５】
いくつかの実施形態において、モデル管理モジュール（複数）１２０のトリガに応答するよりはむしろ、セキュリティモジュール１１６は、グラフモデル１１８に固有のパターン、検出などのクエリを行い、関連するスコープを判定し、そして読み出された情報を含むデータオブジェクトのスコープの少なくとも一部に基づいてアクションを行うことができる。
【００２６】
モデル管理モジュール（複数）１２０は、エージェント１１４がイベントを出力する時に実質的にリアルタイムでイベントを受信し、それらのイベントに基づいてグラフモデル１１８を更新し、そしてグラフモデル１１８からの情報を探索するクエリに応答することもできる。モデル管理モジュール（複数）１２０の例を図３に例示し、その図面を参照して以下により詳細に説明する。
【００２７】
モデルワーカモジュール（複数）１２２は、グラフモデル１１８が構築される時に実質的にリアルタイムで、グラフモデル１１８の検索インデックスを生成すること、グラフモデル１１８の分析および脅威の検出を実行することなどの、グラフモデル１１８に関係する付加的な処理を実行できる。モデルワーカモジュール（複数）１２２の例を図４に例示し、その図面を参照して以下により詳細に説明する。
【００２８】
さまざまな実施形態において、セキュリティサービスクラウド１０２はまた、各監視対象デバイス１０４／１０６のグラフモデル１２４などの、インメモリデバイス固有のグラフモデル１２４に格納することもできる。各グラフモデル１２４は、それぞれのグラフモデル１２４の構築に関与することができる、セキュリティサービスクラウド１０２のアクタモジュールと関連付けることができる。アクタモジュールは、実質的にリアルタイムでモデル管理モジュール（複数）１２０のルーティングモジュールからイベントを受信することができる。これらのイベントは、そのアクタモジュールのグラフモデル１２４に固有である、監視対象デバイス１０４／１０６と関連付けられたすべてのイベントを包含することができる。アクタモジュールは次に、イベントを受信する時に実質的にリアルタイムで、およびモデル管理モジュール（複数）がグラフモデル１１８を構築するやり方と同様のやり方でグラフモデル１２４を構築することができる。グラフモデル１１８と同様に、グラフモデル１２４もまた、エッジとして表されるそれらのコンポーネント／イベントとの間／における関係の頂点として表されるシステムコンポーネントおよびイベントのデータオブジェクトを包含することができる。しかしながら、グラフモデル１２４のデータオブジェクトは、スコープのプロパティがない場合もある。
【００２９】
さらなる実施形態において、セキュリティサービスクラウド１０２はまた、グラフモデル１２４が構築される時に実質的にリアルタイムでグラフモデル１２４によって表される情報を検査して反応するデバイスモデルモジュール１２６を含むこともできる。各デバイスモデルモジュール１２６は、固有のパターンまたは検出のために（本明細書では「セキュリティ上の懸念」と呼ぶ）グラフモデル１２４を検査し、それに応じてアクションを行うことができる。異なるデバイスモデルモジュール１２６は、異なるセキュリティ上の懸念に固有にすることができる。それに応じて行われるアクションは、エージェント１１４の再構成、監視対象デバイス１０４／１０６の修復などを含むことができる。デバイスモデルモジュール１２６はまた、グラフモデル１１８、セキュリティ上の懸念を提示しているグラフモデルとは異なるグラフモデル１２４、またはリモートソースなどの、他のソースから情報を読み出し、そしてその情報をセキュリティ上の懸念の分析に使用することもできる。デバイスモデルモジュール１２６は次に、セキュリティ上の懸念と関連付けられた情報と他のソースから読み出された情報との両方に基づいて反応することができる。
【００３０】
例示的なモデル管理モジュール（複数）
図３は、セキュリティ関連の情報を１つまたは複数のイベントとして監視対象デバイスから受信し、それらのイベントをモデルのデータオブジェクトの作成、更新またはリンク設定にマッピングし、そしてモデルを更新する、セキュリティサービスクラウドの例示的なモデル管理モジュール（複数）を例示する。図示されたように、モデル管理モジュール（複数）１２０は、イベントをメッセージキュー３０２から受信するか、または読み出すことができる。モデル管理モジュール（複数）１２０のルーティングモジュール３０４は、受信された／読み出されたイベントをグラフモデル１１８のデータオブジェクトの作成、更新またはリンク設定にマッピングし、そしてイベントをイベントバス３０６経由でモデルインタフェースモジュール（複数）３０８に出力する。モデルインタフェースモジュール（複数）３０８は次に、グラフモデル１１８を更新し、モデルワーカモジュール（複数）１２２によって利用されるようにイベントをメッセージキュー３１０に出力することができる。モデル管理モジュール（複数）１２０はまた、リクエスタシステム（複数）３１４からクエリを受信してモデルインタフェースモジュール（複数）３０８を介してグラフモデル１１８にクエリを行うクエリインタフェース３１２を含むこともできる。
【００３１】
さまざまな実施形態において、監視対象デバイス１０４と１０６からの出力イベントは、セキュリティサービスクラウド１０２によって受信され、そしてメッセージキュー３０２に格納される。メッセージキュー３０２は、保証された配信レイヤとして使用される分散トピックキューシステムにすることができる。このようなメッセージキュー３０２の例は、Ａｐａｃｈｅ（商標）のＫａｆｋａクラスタである。
【００３２】
いくつかの実施形態において、イベントのドメイン固有言語（ＤＳＬ）を含むルーティングモジュール３０４は、イベントをメッセージキュー３０２から受信するか、または読み出して、受信されたイベントを処理することができる。ルーティングモジュール３０４は、受信された／読み出されたイベントを評価するためにＤＳＬを利用して、ＤＳＬに基づいてどんなイベントのセットがデータオブジェクト（例えば、ツリーオブジェクト）の固有のタイプの作成、更新、またはリンク設定にマッピングするかを判定する。ルーティングモジュール３０４は次に、トリガイベントをイベントバス３０６経由で１つまたは複数のモデルインタフェースモジュール（複数）３０８に出力する。さまざまな実施形態において、ルーティングモジュール３０４は、トリガイベントの固有のタイプ（例えば、プロセスオブジェクトの作成をトリガするイベント）をモデルインタフェースモジュール（複数）３０８の固有のモジュール（複数）に向けることができる。いくつかの実施形態において、ルーティングモジュール３０４はまた、モデルワーカモジュール（複数）１２２によって生成される検出イベントなどのイベントをメッセージキュー３１０から受信するか、または読み出すこともできる。
【００３３】
さらに、さまざまな実施形態において、ルーティングモジュール３０４は、受信された／読み出されたイベントがデータオブジェクトの作成、更新、またはリンク設定にマッピングするのではなく、むしろデータオブジェクトのうちの１または複数と関連付けられた付加的な参照データであるセキュリティ関連の情報を含むことを判定することができる。ルーティングモジュール３０４は、付加的な参照データを二次的なストレージデバイスに格納するためにトリガイベントをモデルワーカモジュール（複数）１２２に放出することができる。これらの放出されたイベントをメッセージキュー３１０に格納してそこから読み出すことができる。
【００３４】
さらなる実施形態において、モデルインタフェースモジュール（複数）３０８は、グラフモデル１１８を更新する１つまたは複数のアクタモジュールを含むことができる。例えば、モデルインタフェースモジュール（複数）３０８は、トリガイベントをイベントバス３０６経由で受信して、受信されたイベントに基づいてグラフモデル１１８を更新する、各オブジェクトタイプの１つまたは複数のアクタモジュール（例えば、プロセスオブジェクトアクタモジュール）を含むことができる。アクタモジュールは、データオブジェクトをグラフモデル１１８の頂点として作成して、それをデータオブジェクトによって表されるシステムコンポーネント／イベント間の関係に基づいて他のデータオブジェクトにリンクすることが可能である。アクタモジュールはまた、データオブジェクトを例えば、タグ、フィールド、またはプロパティを付加するまたは変更することによって更新することも可能である。さらに、アクタモジュールは、すでにリンクが外れた２つのデータオブジェクト間のリンクを付加することも可能である。
【００３５】
さらに、デバイス固有のスコープを有するコンポーネント／イベントのデータオブジェクトが作成されると、モデルインタフェースモジュール（複数）３０８は、そのコンポーネント／イベントのグループ固有またはグローバルなスコープを有するデータオブジェクトが存在するかどうかを判定することができる。存在しなければ、モデルインタフェースモジュール（複数）３０８は、グループ固有またはグローバルなスコープを有するデータオブジェクトを作成することができる。いくつかの実施形態において、グループ固有またはグローバルなスコープを有するこのようなデータオブジェクトは、モデルインタフェースモジュール（複数）３０８によって非同期的に作成され得る。
【００３６】
グループ固有またはグローバルなスコープを有するデータオブジェクトの作成に加えて、モデルインタフェースモジュール（複数）３０８は、コンポーネント／イベントを表すデータオブジェクトのタグ、プロパティまたはフィールドを、同じコンポーネント／イベントを表す異なるスコープを有する他のデータオブジェクトに伝播することができる。例えば、タグが固有の振る舞いを示すデバイス固有のスコープを有するデータオブジェクトに付加されると、そのタグは、グループ固有および／またはグローバルなスコープを有するカウンターパートのデータオブジェクトに伝播され得る。いくつかの実施形態において、この伝播は、セキュリティサービスクラウド１０２の構成のモデル、閾値などに基づいて条件付けることができる。さらに、同じコンポーネント／イベントを表す異なるスコープを有する他のデータオブジェクトへの新しいタグの伝播により、さらなる分析、監視、修復などのアクションをトリガすることができる。
【００３７】
さまざまな実施形態において、モデルインタフェースモジュール（複数）３０８はまた、クエリインタフェース３１２による呼び出しに応答してグラフモデル１１８にクエリを行うアクタモジュール（複数）を含むこともできる。このようなモデルインタフェースモジュール（複数）３０８は、モデルワーカモジュール（複数）１２２によって構築される検索インデックスを利用して、よりコストがかかるグラフモデル１１８の完全なトラバーサルを回避することができる。
【００３８】
さらなる実施形態において、モデルインタフェースモジュール（複数）３０８は、モデルワーカモジュール（複数）１２２によって処理されるためのイベントをメッセージキュー３１０に放出することができる。モデルインタフェースモジュール（複数）３０８は、例えば、グラフモデル１１８に行われる更新が示されたイベントを放出することができる。メッセージキュー３０２と同様に、メッセージキュー３１０は、保証された配信レイヤとして使用される分散トピックキューシステムにすることができる。このようなメッセージキュー３１０の例は、Ａｐａｃｈｅ（商標）のＫａｆｋａクラスタである。モデルワーカモジュール（複数）１２２は次に、それらのアクティビティを調整するためにメッセージキュー３１０のトピックを使用することができる。
【００３９】
さまざまな実施形態において、モデル管理モジュール（複数）１２０は、リクエスタシステム３１４からクエリを受信するクエリインタフェース３１２をさらに含む。リクエスタシステム３１４は、セキュリティモジュール３１６、他のモデル管理モジュール（複数）１２０、モデルワーカモジュール（複数）１２２、またはデバイスモデルモジュール１２６など、セキュリティサービスクラウド１０２の他のコンポーネントを含むことができる。代替的または付加的には、リクエスタシステム３１４は、サードパーティーまたはアフィリエイトシステムを含むことができる。
【００４０】
クエリインタフェース３１２は、リクエスタシステム３１４がいくつかのパラメータから指定するか、または選択することを可能にするＡＰＩを含むことができる。例えば、リクエスタシステム３１４は、グループネットワーク１１０と関連付けられたグループの監視対象デバイス１０４が固有の悪意のあるアクティビティをいくつ提示しているかを知りたい場合がある。別の例において、グループ内の固有の悪意のあるアクティビティの拡がり(prevalence)を判定するよりはむしろ、クエリは、グループ間のアクティビティの拡がりを特定することに努める。クエリインタフェース３１２は次に、クエリで探索されたセキュリティ関連の情報をグラフモデル１１８から読み出すためにモデルインタフェースモジュール（複数）３０８を呼び出すことができる。クエリ結果をモデルインタフェースモジュール（複数）３０８から受信すると、クエリインタフェース３１２は、メタデータまたは他の情報を付加して結果をリクエスタシステム３１４に提供することができる。いくつかの実施形態において、セキュリティ関連の情報をグラフモデル１１８から読み出すことに加えて、クエリインタフェース３１２は、グラフモデル１１８のデータオブジェクトと関連付けられているがグラフモデル１１８に格納されていない付加的な参照情報を読み出すことができる。付加的な参照情報は次に、クエリインタフェース３１２によってモデルインタフェースモジュール（複数）３０８から取得されたクエリ結果に含められ得る。
【００４１】
例示的なモデルワーカモジュール（複数）
図４は、モデル管理モジュール（複数）のイベントを受信するため、およびモデル管理モジュール（複数）から出力を受信するためのメッセージキュー、ならびにモデルの検出イベントおよび検索インデックスを生成するためのモデルワーカモジュール（複数）を例示する。図示されたように、メッセージキュー３０２は、監視対象デバイス１０４と１０６からセキュアなチャネル４０２経由で出力イベントを受信することができる。モデル管理モジュール（複数）１２０は、グラフモデル１１８の更新をそれらのイベントに基づいて行って、イベントをメッセージキュー３１０に出力する。検索インデックスモジュール（複数）４０４または検出プロセッサモジュール（複数）４０６などのモデルワーカモジュール（複数）１２２は、イベントをメッセージキュー３１０から受信するか、または読み出すことができ、グラフモデル１１８と関連付けられたいくつかの機能を実行することができる。例えば、検索インデックスモジュール（複数）４０４は、グラフモデル１１８の検索インデックス４０８を構築することができる。
【００４２】
さまざまな実施形態において、監視対象デバイス１０４／１０６からのイベントは、その監視対象デバイス１０４／１０６のエージェント１１４とセキュリティサービスクラウド１０２との間の双方向イベントチャネルなど、セキュアなチャネル４０２経由で受信され得る。それぞれのエージェント１１４の終端レイヤとセキュリティサービスクラウド１０２は、そのエージェント１１４とセキュリティサービスクラウド１０２との間の通信の暗号化の何らかの形式のうちＴＬＳ暗号化を実行できる。セキュリティサービスクラウド１０２上の終端レイヤはまた、受信されたイベントがメッセージキュー３０２まで持続するエージェントを含むこともできる。
【００４３】
メッセージキュー３０２からのイベントに基づいてグラフモデル１１８がモデル管理モジュール（複数）１２０によって更新された後、およびイベントをメッセージキュー３１０に出力した後、モデルワーカモジュール（複数）１２２は、イベントをメッセージキュー３１０から読み出すか、または受信することができる。これらのモデルワーカモジュール（複数）１２２は、メッセージキュー３１０を介して出力されるイベントに基づいてグラフモデル１１８の検索インデックス４０８を構築する検索インデックスモジュール（複数）４０４を含むことができる。検索インデックスモジュール（複数）４０４は、メッセージキュー３１０のイベントをリッスンして、それらのイベントに基づいて検索インデックス４０８の融通性のある(elastic)検索クラスタを構築する。検索インデックス４０８は次に、グラフモデル１１８から情報を読み出す時にモデルインタフェースモジュール（複数）３０８によって使用され得る。
【００４４】
さまざまな実施形態において、検出プロセッサモジュール（複数）４０６は、イベントをメッセージキュー３１０から受信するか、または読み出して、それらのイベントに含まれている情報が検出イベントにマッピングされるかどうかを判定することができる。情報が検出イベントにマッピングされると、検出プロセッサモジュール（複数）４０６は、検出イベントを生成して、メッセージキュー３１０を介して検出イベントをモデル管理モジュール（複数）１２０に提供する。例えば、メッセージキュー３１０からの受信イベントは、「ＰｒｏｃｅｓｓＣｒｅａｔｅｄ」イベントにすることができ、検出プロセッサモジュール（複数）４０６は、「ＰｒｏｃｅｓｓＣｒｅａｔｅｄ」イベントに応答して検出イベントを生成することができる。モデル管理モジュール（複数）１２０のモデルインタフェースモジュール（複数）３０８は次に、検出イベントに基づいて検出オブジェクトをグラフモデル１１８に付加することができる。
【００４５】
例示的なシステム
図５は、セキュリティサービスクラウドデバイスとして機能する能力があるコンピューティングデバイスのコンポーネントレベルビューを例示する。図示されたように、コンピューティングデバイス５００は、モジュールとデータ５０４を格納するシステムメモリ５０２を備える。また、コンピューティングデバイス５００は、プロセッサ（複数）５０６、取外し可能記憶装置５０８および取外し不能記憶装置５１０、入力デバイス（複数）５１２、出力デバイス（複数）５１４および他のコンピューティングデバイス５１８と通信する通信接続５１６を含む。
【００４６】
さまざまな実施形態において、システムメモリ５０２は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリその他など）または２つのある組み合わせである。システムメモリ５０２に格納されたモジュールまたはデータ５０４は、方法、スレッド、プロセス、アプリケーション、または（セキュリティサービスクラウド１０２が複数のデバイスを含む例にある）セキュリティサービスクラウド１０２の他のデバイスと共にセキュリティサービスクラウド１０２のオペレーションを実行するために利用される命令など、その他の種類の実行可能命令を備えることができる。モジュールおよびデータ５０４はまた、ファイルおよびデータベースを含むこともできる。
【００４７】
いくつかの実施形態において、プロセッサ（複数）５０６は、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、またはＣＰＵとＧＰＵの両方、または当技術分野で周知である他の処理装置またはコンポーネントである。
【００４８】
コンピューティングデバイス５００はまた、例えば、磁気ディスク、光ディスク、またはテープなど、付加的なデータストレージデバイス（取外し可能および／または取外し不能）も含む。このような付加的なストレージは、図５の取外し可能記憶装置５０８および取外し不能記憶装置５１０で例示される。非一時的なコンピュータ可読媒体は、情報を格納するための任意の方法または技術で実装される揮発性および不揮発性、取外し可能および取外し不能な媒体を含むことができる。システムメモリ５０２、取外し可能記憶装置５０８および取外し不能記憶装置５１０はすべて、コンピュータ可読記憶媒体の例である。非一時的なコンピュータ可読媒体は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用することができ、コンピューティングデバイス５００によってアクセスすることができるその他の物理的、有形媒体を含む。このような非一時的なコンピュータ可読媒体のいずれもコンピューティングデバイス５００の一部にすることができる。
【００４９】
コンピューティングデバイス５００はまた、キーボード、マウス、タッチセンサー式ディスプレイ、音声入力デバイスなどの入力デバイス（複数）５１２、およびディスプレイ、スピーカ、プリンタなどの出力デバイス（複数）５１４も有する。これらのデバイスは、当業者には周知であり、本明細書では詳しく論じる必要はない。
【００５０】
コンピューティングデバイス５００はまた、コンピューティングデバイス５００が、監視対象デバイス１０４または１０６の一部またはすべてなど、他のコンピューティングデバイス５１８との通信を可能にさせる通信接続５１６も包含する。
【００５１】
例示的なプロセス
図６−図８は、例示的なプロセス６００、７００、および８００を例示する。これらのプロセスは、論理フローグラフとして例示され、グラフの各オペレーションは、ハードウェア、ソフトウェア、またはその組み合わせで実装することができるオペレーションのシーケンスを表す。ソフトウェアのコンテキストにおいて、オペレーションは、１つまたは複数のプロセッサによって実行されると、列挙されたオペレーションを実行する１つまたは複数のコンピュータ可読記憶媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションが説明されている順序は、限定と解釈されることを意図せず、説明されているオペレーションの任意の番号は、任意の順序で組み合わされ、および／または並行してプロセスを実装することができる。
【００５２】
図６は、セキュリティサービスクラウドによって、複数の監視対象デバイスの状態のモデルを実質的にリアルタイムで構築し、そしてモデルのデータオブジェクトのスコープを利用して異なるセキュリティアクションを実行するための例示的なプロセス６００を示している。プロセス６００は、６０２において、複数の監視対象デバイスによって出力されるイベントをセキュリティサービスクラウドが受信することを含む。出力イベントは、監視対象デバイスのシステムコンポーネントまたはイベントと関連付けられたセキュリティ関連の情報を含む。このようなシステムコンポーネントの例は、プロセスとモジュールを含み、イベントの例は、実行連鎖、イベント検出、およびパターンヒットを含む。出力イベントは、セキュリティサービスクラウドによって受信されて、保証された配信レイヤのメッセージキューに格納される。
【００５３】
６０４において、セキュリティサービスクラウドのルーティングモジュールは、メッセージキューから出力イベントを受信するか、または読み出す。６０６において、ルーティングモジュールは次に、１つまたは複数の出力イベントのセットがグラフモデルのデータオブジェクトの作成、更新、またはリンク設定にマッピングされることを判定し、６０８において、イベントをアクタモジュールに出力する。ルーティングモジュールとアクタモジュールの両方は、モデル管理モジュール（複数）１２０の例にすることができる。
【００５４】
６１０において、アクタモジュールは、イベントが監視対象デバイスから受信される時に実質的にリアルタイムでルーティングモジュールから受信されたイベントに基づいてデータオブジェクトを作成し、更新し、またはリンク設定することによってモデルを更新する。各データオブジェクトは、グラフモデルの頂点として表され、そして頂点に接続しているエッジは、データオブジェクトによって表されるシステムコンポーネントまたはイベント間の関係を表す。さらに、各データオブジェクトは、デバイス固有のスコープ、グループ固有のスコープ、またはグローバルスコープなどのスコープを有する。スコープは、グラフモデルのいくつかのデータオブジェクトの明示的なプロパティである場合もあり、グラフモデルの別のデータオブジェクトは、暗黙的なプロパティである場合もある。
【００５５】
６１２において、アクタモジュールは、異なるスコープを有する付加的なデータオブジェクトを作成することができる。例えば、６１０においてアクタモジュールがデバイス固有のスコープを有するシステムコンポーネントのデータオブジェクトを作成すれば、アクタモジュールは、６１２において、そのシステムコンポーネントの対応するグループ固有のスコープおよびグローバルスコープのデータオブジェクトを作成する。６１４において、アクタモジュールは次に、あるスコープを有するデータオブジェクトのプロパティを、同じシステムコンポーネントまたはイベントに対するそれらのデータオブジェクトの共有参照に基づいて異なるスコープを有する別のデータオブジェクトに伝播することができる。６１６において、モデルワーカモジュールまたは他のセキュリティモジュールなどのセキュリティサービスクラウドのモジュールは、データオブジェクトのうちの１つに基づいて複数の異なるアクションのうちの１つを実行することができ、複数の異なるアクションのうちの１つは、データオブジェクトのうちの１つのスコープに基づいて選択される。いくつかの実施形態において、モジュールは、システムコンポーネントまたは振る舞いが任意の監視対象デバイス上で最初にグローバルに観察されるかどうか、またはシステムコンポーネントまたは振る舞いが固有の監視対象デバイス上で最初に観察されるがすでに別の監視対象デバイス上で観察されたかどうかに基づいて異なるアクションを行う。さらなる実施形態において、６１４におけるタグの伝播に基づいてアクションを選択してトリガすることができる。
【００５６】
６１８において、モデル管理モジュール１２０または別の種類のモジュールであってもよい、セキュリティサービスクラウドのクエリインタフェースは、リクエスタの命令においてグラフモデルにクエリを行うことができる。例えば、リクエスタは、グループと関連付けられたすべての検出イベントを探索することができ、クエリインタフェースは、そのグループと関連付けられたすべての検出イベントのグラフモデルにクエリを行うことができる。６２０において、クエリからの結果において参照されたデータオブジェクトのスコープに基づいてグループ内またはグループ間のセキュリティ上の懸念の拡がりを判定することができる。例えば、クエリインタフェースは、エクスプロイトアクティビティが、グループのある監視対象デバイスがグループの別の監視対象デバイスよりも多く検出されたことを判定することができる。６２２において、クエリインタフェースは、付加されたメタデータを有するクエリ結果をリクエスタに提供することができる。
【００５７】
図７は、セキュリティサービスクラウドによって、複数の監視対象デバイスの状態のモデルを実質的にリアルタイムで構築し、構築されたモデルに基づいてセキュリティ上の懸念を検出し、そしてそれらのセキュリティ上の懸念を表すモデルに検出データオブジェクトを付加するための例示的なプロセス７００を示している。プロセス７００は、７０２において、セキュリティサービスクラウドによって、複数の監視対象デバイスからそれらの監視対象デバイスのシステムコンポーネントまたはイベントに関するセキュリティ関連の情報を受信することを含む。
【００５８】
７０４において、セキュリティサービスクラウドは、セキュリティ関連の情報が受信される時に実質的にリアルタイムで複数の監視対象デバイスのシステムコンポーネントまたはイベントをデータオブジェクトとして表すグラフモデルを更新することができる。データオブジェクトは、プロセス、プロセスのモジュール、プロセスの実行連鎖、イベント検出、またはパターンヒットを表すことができる。
【００５９】
７０６において、セキュリティサービスクラウドは次に、セキュリティ関連の情報を見つけるための検索インデックスを、グラフモデルをトラバースすることを必要とせずに作成することができる。
【００６０】
７０８において、セキュリティサービスクラウドはまた、データオブジェクトに関連するがグラフモデルにおいて表されていない付加的なデータを格納することもできる。
【００６１】
７１０において、セキュリティサービスクラウドの１つまたは複数のモデルワーカモジュール１２２のうちの１つなどの、ワーカモジュールは次に、メッセージキューを介してグラフモデルを更新する通知を受信することができる。７１２において、ワーカモジュールは、次に、表されたシステムコンポーネントまたはイベントと関連付けられたセキュリティ上の懸念を実質的にリアルタイムで検出することができる。７１４において、ワーカモジュールは、セキュリティ上の懸念の検出に応答して付加的な分析を実行することができ、７１６において、実質的にリアルタイムで、セキュリティ上の懸念をグラフモデルの検出データオブジェクトとして表すことができる。
【００６２】
図８は、セキュリティサービスクラウドによって、監視対象デバイスに固有のモデルを構築し、そして実質的にリアルタイムでデバイス固有のモデルに基づいてセキュリティ上の懸念を検出して、それらの懸念に応答するための例示的なプロセス８００を示している。プロセス８００は、８０２において、セキュリティサービスクラウドによって、セキュリティ関連の情報を監視対象デバイスから受信することを含む。
【００６３】
８０４において、セキュリティサービスクラウドは、セキュリティ情報が受信される時に実質的にリアルタイムでデバイス固有のモデル１２４など、監視対象デバイスに固有のモデルのセキュリティ関連の情報を表す。監視対象デバイスに固有のモデルは、デバイスモデルモジュール１２６または監視対象デバイスに固有のモデルを保持することに関与している別のモジュールなどの、アクタモジュールと関連付けられ得る。
【００６４】
８０６において、セキュリティサービスクラウドは次に、セキュリティ関連の情報が表される時に実質的にリアルタイムで、モデルにおいて表されたセキュリティ関連の情報と関連付けられたセキュリティ上の懸念を検出することができる。いくつかの実施形態において、検出は、セキュリティサービスクラウドの異なるモジュールによって異なるセキュリティ上の懸念を検出することを備える。異なるモジュールはそれぞれ、１つまたは複数の異なるセキュリティ上の懸念を検出するように構成されてもよい。
【００６５】
８０８において、セキュリティサービスクラウドは、複数の監視対象デバイスの状態を表すモデルからの情報またはセキュリティ上の懸念の検出に応答して１つまたは複数の他のソースからの情報をさらに集めることができる。１つまたは複数の他のソースは、他のデバイス固有のモデルを含むことができる。
【００６６】
８１０において、セキュリティサービスクラウドは、モデルにおいて表されたセキュリティ関連の情報、および複数の監視対象デバイスから受信されて他のモデルによって表されるセキュリティ関連の情報の少なくとも一部に基づいて、セキュリティ上の懸念が検出される時に実質的にリアルタイムで、セキュリティ上の懸念の検出に応答してアクションを行うことができる。８１２において、アクションを行うことは、セキュリティ関連の情報が受信された監視対象デバイスのエージェントの構成を更新すること、その監視対象デバイスへのアクションをトリガすること、またはその監視対象デバイスの実行時データを更新することのうちの少なくとも一つを備える。
【００６７】
結論
発明の主題は、構造的特徴および／または方法論的行為に固有の言語で説明されているが、添付の特許請求の範囲で定義された発明の主題は、説明された固有の特徴または行為に必ずしも限定されないことを理解されたい。むしろ固有の特徴および行為は、特許請求の範囲を実装する例示的な形態として開示されている。
【図１】
2017522653.tif 000003
【図２】
2017522653.tif 000004
【図３】
2017522653.tif 000005
【図４】
2017522653.tif 000006
【図５】
2017522653.tif 000007
【図６】
2017522653.tif 000008
【図７】
2017522653.tif 000009
【図８】
2017522653.tif 000010
【国際調査報告】
2017522653.tif 000011
2017522653.tif 000012
2017522653.tif 000013