(57)【要約】  依存関係追跡のための方法およびシステムは、インターリーブ依存関係によるイベントのバーストを生じさせる最新プロセスを識別することを含む。最新プロセスに関連しているイベントは、最新プロセスに関連しているイベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって集約される。集約されたイベントを含むイベントストリームを縮約した因果律が追跡される。
2019506678.tif 000002
【特許請求の範囲】
【請求項１】
依存関係追跡のための方法であって、
インターリーブ依存関係を用いてイベントのバーストを生じさせる最新プロセスを識別することと、
前記最新プロセスに関連している前記イベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって前記最新プロセスに関連しているイベントを集約することと、
プロセッサを使用して、集約された前記イベントを含むイベントストリームを縮約して因果律を追跡することと、を含む、方法。
【請求項２】
前記最新プロセスを識別することは、ある期間にわたるプロセスによって生じたイベントの数をカウントすることを含む、請求項１に記載の方法。
【請求項３】
前記最新プロセスを識別することは、閾値を超える前記期間におけるイベントのカウントされた数を有するプロセスが最新プロセスとして識別されるように、前記イベントのカウントされた数を前記閾値と比較することを含む、請求項２に記載の方法。
【請求項４】
前記最新プロセスに関連しているイベントを集約することは、前記イベントを、前記イベントの継続時間の全てを含む継続時間を有する単一のイベントと置き換えることを含む、請求項１に記載の方法。
【請求項５】
キーイベントおよび対応するシャドウイベントを識別することと、シャドウイベントを対応するキーイベントと集約することと、をさらに含む、請求項１に記載の方法。
【請求項６】
因果律追跡の出力はシャドウイベントの有無によって影響されない、請求項５に記載の方法。
【請求項７】
キーイベントを識別することは、逆方向追跡シナリオにおいてキーイベントを識別することを含む、請求項５に記載の方法。
【請求項８】
キーイベントを識別することは、順方向追跡シナリオにおいてキーイベントを識別することを含む、請求項５に記載の方法。
【請求項９】
キーイベントおよびシャドウイベントを識別すること、およびシャドウイベントを集約することは、最新プロセスに関連付けられていないイベントに対してのみ行われる、請求項５に記載の方法。
【請求項１０】
依存関係追跡のためのシステムであって、
インターリーブ依存関係を用いてイベントのバーストを生じさせる最新のプロセスを識別するように構成されるビジープロセスモジュールと、
前記最新プロセスに関連している前記イベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって前記最新プロセスに関連しているイベントを集約するように構成される集約モジュールと、
集約された前記イベントを含むイベントストリームを縮約して因果律を追跡するように構成されるプロセッサを含む因果律追跡モジュールと、を備える、システム。
【請求項１１】
前記ビジープロセスモジュールは、ある期間にわたるプロセスによって生じたイベントの数をカウントするようにさらに構成される、請求項１０に記載のシステム。
【請求項１２】
前記ビジープロセスモジュールは、閾値を超える前記期間におけるイベントのカウントされた数を有するプロセスが最新プロセスとして識別されるように、前記イベントのカウントされた数を前記閾値と比較するようにさらに構成される、請求項１１に記載のシステム。
【請求項１３】
前記集約モジュールは、イベントを、継続時間を有する単一のイベントと置き換えるようにさらに構成され、該継続時間は、置き換えられる前記イベントの継続時間の全てを含む、請求項１０に記載のシステム。
【請求項１４】
キーイベントおよび対応するシャドウイベントを識別するように構成される追跡モジュールをさらに含み、前記集約モジュールはシャドウイベントを対応するキーイベントと集約するようにさらに構成される、請求項１０に記載のシステム。
【請求項１５】
前記追跡モジュールの出力はシャドウイベントの有無によって影響されない、請求項１４に記載のシステム。
【請求項１６】
前記追跡モジュールは、逆方向追跡シナリオにおいてキーイベントを識別するようにさらに構成される、請求項１４に記載のシステム。
【請求項１７】
前記追跡モジュールは、順方向追跡シナリオにおいてキーイベントを識別するようにさらに構成される、請求項１４に記載のシステム。
【請求項１８】
前記追跡モジュールは、キーイベントおよびシャドウイベントを識別するように、および、最新プロセスに関連付けられていないイベントに対してのみシャドウイベントの集約が行われるようにさらに構成される、請求項１４に記載のシステム。
【請求項１９】
侵入検出のための方法であって、
インターリーブ依存関係によるイベントのバーストを生じさせる最新プロセスを識別することと、
前記最新プロセスに関連している前記イベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって前記最新プロセスに関連しているイベントを集約することと、
プロセッサを使用して、集約された前記イベントを含むイベントストリームを縮約して因果律を追跡することと、を含む、フラグが立てられたイベントに対する因果律軌跡を判断することと、
前記因果律軌跡に基づいて侵入が発生したかどうかを判断することと、
侵入が発生したと判断される場合、１つまたは複数の緩和動作をもたらすことと、を含む、方法。
【請求項２０】
前記最新プロセスを識別することは、ある期間にわたるプロセスによって生じたイベントの数をカウントすることを含む、請求項１９に記載の方法。
【請求項２１】
前記最新プロセスを識別することは、閾値を超える前記期間におけるイベントのカウントされた数を有するプロセスが最新プロセスとして識別されるように、前記イベントのカウントされた数を前記閾値と比較することを含む、請求項２０に記載の方法。
【請求項２２】
前記最新プロセスに関連しているイベントを集約することは、前記イベントを、前記イベントの継続時間の全てを含む継続時間を有する単一のイベントと置き換えることを含む、請求項１９に記載の方法。
【請求項２３】
キーイベントおよび対応するシャドウイベントを識別することと、シャドウイベントを対応するキーイベントと集約することと、をさらに含む、請求項１９に記載の方法。
【請求項２４】
因果律追跡の出力はシャドウイベントの有無によって影響されない、請求項２３に記載の方法。
【請求項２５】
キーイベントを識別することは、逆方向追跡シナリオにおいてキーイベントを識別することを含む、請求項２３に記載の方法。
【請求項２６】
キーイベントを識別することは、順方向追跡シナリオにおいてキーイベントを識別することを含む、請求項２３に記載の方法。
【請求項２７】
キーイベントおよびシャドウイベントを識別すること、およびシャドウイベントを集約することは、最新プロセスに関連付けられていないイベントに対してのみ行われる、請求項２３に記載の方法。
【請求項２８】
侵入検出のためのシステムであって、
インターリーブ依存関係を用いてイベントのバーストを生じさせる最新のプロセスを識別するように構成されるビジープロセスモジュールと、
前記最新プロセスに関連しているイベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって前記最新プロセスに関連している前記イベントを集約するように構成される集約モジュールと、
集約された前記イベントを含むイベントストリームを縮約して因果律を追跡するように構成されるプロセッサを含む因果律追跡モジュールと、を備える、フラグが立てられたイベントに対する因果律軌跡を判断するように構成される因果律軌跡システムと、
前記因果律軌跡に基づいて侵入が発生したかどうかを判断するように構成される侵入検出モジュールと、
前記侵入検出モジュールが侵入が発生したと判断する場合、１つまたは複数の緩和動作をもたらすように構成される緩和モジュールと、を備える、システム。
【請求項２９】
前記ビジープロセスモジュールは、ある期間にわたるプロセスによって生じたイベントの数をカウントするようにさらに構成される、請求項２８に記載のシステム。
【請求項３０】
前記ビジープロセスモジュールは、閾値を超える前記期間におけるイベントのカウントされた数を有するプロセスが最新プロセスとして識別されるように、前記イベントのカウントされた数を前記閾値と比較するようにさらに構成される、請求項２９に記載のシステム。
【請求項３１】
前記集約モジュールは、イベントを、継続時間を有する単一のイベントと置き換えるようにさらに構成され、該継続時間は、置き換えられる前記イベントの継続時間の全てを含む、請求項２８に記載のシステム。
【請求項３２】
キーイベントおよび対応するシャドウイベントを識別するように構成される追跡モジュールをさらに含み、前記集約モジュールはシャドウイベントを対応するキーイベントと集約するようにさらに構成される、請求項２８に記載のシステム。
【請求項３３】
前記追跡モジュールの出力はシャドウイベントの有無によって影響されない、請求項３２に記載のシステム。
【請求項３４】
前記追跡モジュールは、逆方向追跡シナリオにおいてキーイベントを識別するようにさらに構成される、請求項３２に記載のシステム。
【請求項３５】
前記追跡モジュールは、順方向追跡シナリオにおいてキーイベントを識別するようにさらに構成される、請求項３２に記載のシステム。
【請求項３６】
前記追跡モジュールは、キーイベントおよびシャドウイベントを識別するように、および、最新プロセスに関連付けられていないイベントに対してのみシャドウイベントの集約が行われるようにさらに構成される、請求項３２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照により全体が本明細書に援用される、２０１６年２月１８日に出願された米国仮特許出願第62/296,646号の優先権を主張するものである。
【０００２】
本発明は、因果関係解析に関し、より詳細には、大量のイベント情報のデータ縮約に関する。
【背景技術】
【０００３】
関連技術の説明
コンピュータシステムに対する正確な因果関係解析、とりわけ、法科学依存関係解析には、プロセス作成、ファイル読み取り／書き込み動作、およびネットワークの送出／受信動作などの低レベルのシステムイベントを綿密に監視しかつ記録することを利用する。しかしながら、このようなきめ細かな監視によってもたらされる大量の情報は、リアルタイムで、かつ履歴情報に短い待ち時間で選択的にアクセスすることによってデータを処理しかつ記憶するためにかなりのコンピューティングリソースを要する。
【０００４】
したがって、依存関係解析の反復性によって、データ量を縮約することは利点となるが、データを縮約することによって生じる不正確さの影響は飛躍的に大きくなる可能性がある。例えば、前後するいくつかのホップが因果連鎖をたどって追跡される際に誤って取り込まれた１つの依存関係が、何百もの誤検知につながる可能性がある。
【０００５】
データトレース量の縮約に対するいくつかの既存の技法には、例えば、空間および時間サンプリングを用いる。しかしながら、因果関係解析における飛躍的な誤差の拡大によって、これらのサンプリングベースのデータ縮約は、有用な結果をもたらすことはない。他の技法は、トレースの非常に冗長な積み重ねに基づいて機能し、データ縮約が重複排除によって達成できる。しかしながら、収集されたデータ内の因果関係は、容易に対処できるような、重複した構造を有さないことが多い。
【０００６】
他の試みでは、ドメイン知識ベースの剪定を用いている。この場合、ある特定のタイプのファイルは、他よりも少ない依存関係の情報を伝達してもよいため、これらのファイルは、大きな誤差を取り込まずに剪定可能である。これらのアプローチは、使用されているドメイン知識のアプリケーション特有の性質によって、一般的な適用範囲が限定されている。
【０００７】
最終的に、いくつかの試みでは、システム規模の依存関係解析を対象とするのではなく、小さな組のアプリケーションに重点を置いている。これらのアプリケーションは、例えば、データベースまたはウェブサーバを含むことがあり得る。これらの解析は、少ないデータ量で生じる、収集したデータのより高いレベルの見解をもたらすが、低レベルのデータから少しずつ収集されていたかもしれない重要な情報を見逃すといった犠牲を払っている。
【発明の概要】
【０００８】
依存関係追跡のための方法は、インターリーブ依存関係を用いてイベントのバーストを生じさせる最新プロセスを識別することを含む。最新プロセスに関連しているイベントは、最新プロセスに関連しているイベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって集約される。プロセッサを使用して、集約されたイベントを含むイベントストリームを縮約して、因果律が追跡される。
【０００９】
依存関係追跡のためのシステムは、インターリーブ依存関係を用いてイベントのバーストを生じさせる最新のプロセスを識別するように構成されるビジープロセスモジュールを含む。集約モジュールは、最新プロセスに関連しているイベント間の依存関係を無視するプロセス中心の依存関係の近似にしたがって最新プロセスに関連しているイベントを集約するように構成される。因果律追跡モジュールは、集約されたイベントを含むイベントストリームを縮約して因果律を追跡するように構成されるプロセッサを含む。
【００１０】
これらのならびに他の特徴および利点は、これらの例示の実施態様の以下の詳細な説明から、添付の図面と関連付けて読むことで明らかとなるであろう。
【図面の簡単な説明】
【００１１】
本開示について、以下の図を参照して好ましい実施形態の以下の説明において詳細に示す。
【図１】本原理によるデータ縮約の方法のブロック／フロー図である。
【図２】本原理によるデータ縮約の方法のブロック／フロー図である。
【図３】本原理による例示のイベントの組の図である。
【図４】本原理による例示のイベントの組の図である。
【図５】本原理によるデータ縮約の方法のブロック／フロー図である。
【図６】本原理によるデータ縮約システムのブロック図である。
【図７】本原理による処理システムのブロック図である。
【図８】本原理による侵入検出システムのブロック図である。
【発明を実施するための形態】
【００１２】
本原理にしたがって、イベント間の依存関係を維持しながら、リアルタイムでシステムイベントトレースデータを縮約するシステムおよび方法が提供される。これによって、解析の品質への影響を最小にする依存関係解析のスケーラビリティが高まる。
【００１３】
データ縮約をもたらすために、本実施形態では、「キーイベント」と「シャドウイベント」とは区別されている。低レベルのシステムイベントのストリームにおいて、イベントのごく一部しか他のイベントに対する因果律の重要性を持っていない。これらのイベントは本明細書では「キーイベント」と称される。それぞれのキーイベントについて、キーイベントが存在する中で他のイベントとの因果関係がさほど重要でない一連の「シャドウイベント」が存在する場合がある。すなわち、シャドウイベントの有無は依存関係解析の結果を改変することはない。したがって、本実施形態では、リアルタイムのシステムイベントストリームにおいてキーイベントおよびシャドウイベントを検出する。依存関係解析に関係がある情報は維持されながら、データ量は他の情報を集約しかつ要約することによって縮約される。
【００１４】
本実施形態は、「無損失」モードまたは「損失」モードのどちらかで動作できる。無損失モードでは、因果律が完全に維持されるように、キーイベントおよびシャドウイベントの識別のみに基づいてデータ縮約が行われる。データに対する随意の依存関係解析は、データ縮約の前および後では、互いに同じイベントのシーケンスを生じさせる。
【００１５】
一方、損失モードでは、いくつかのアプリケーション（例えば、システムデーモン）が無損失モードにおいて縮約できない同様のイベントの極度のバーストを示す傾向があるという事実を活用する。このようなシナリオの１つの例は、インターリーブ依存関係によってファイルの組に繰り返しアクセスすることを含んでいる。このようなアプリケーションによって生じたそれぞれのバーストによって、特定のハードウェア要素の存在をチェックすること、ディレクトリにおけるファイルを走査することといった、単独の高レベル動作が行われる場合がある。高レベル動作は必ずしも複雑ではないが、繰り返しが非常に多い低レベル動作に変換できる。因果律解析の観点から、高レベル動作まで追跡することは、結果を理解する際の助けとなるほど十分な情報を生み出すことができ、それによって、まさにその低レベル動作の依存関係の詳細がさらに一層の付加価値を与えないようにする。したがって、精度の損失は、誤差が含まれることによる影響がバーストに属さないイベントに作用しない限り、許容可能とすることができる。
【００１６】
本実施形態は、それによって、低レベルのシステムイベントトレースに対する因果律解析の結果に影響を与えることなく、データ縮約をもたらす。さらに、本実施形態は、ある特定の具体的なタイプのデータにのみ適用するドメイン特有の知識を必要とせずに、任意のタイプのデータに適用されてよい。その結果、本実施形態はより多くのさまざまなシステムに適用可能である。さらにまた、本実施形態は低レベルのシステムイベントトレースを対象とするが、本実施形態はさまざまな意味的レベルで適用可能である。
【００１７】
ここで図１を参照すると、イベント収集のための方法が示されている。ブロック１０２では、例えば、コンピュータシステムにおけるシステムコールまたは他のプロセス相互作用の形式でイベントシステムを収集する。本実施形態はシステムコールに具体的に焦点を合わせて説明されているが、依存関係を有するいずれのさまざまなイベント情報または他のデータも代わりに収集されてよいことは理解されたい。イベントストリームは、例えば、履歴イベント間の因果関係を再構成するために使用可能である、タイミング情報、動作のタイプ、および情報が流れる方向を含む。用語「因果律」および「依存関係」は本明細書では区別なく使用されてよい。ブロック１０４は、収集されたイベントストリームに対してデータサニタイズを行う。
【００１８】
ブロック１０６では、サニタイズされたイベントストリームに対するデータ縮約を行う。より詳細に後述されるように、ブロック１０６におけるデータ縮約は無損失または損失のものであってよく、キーイベントおよびシャドウイベントは、どちらの場合にも、消去されてよいイベントデータの場所カテゴリに対して識別される。ブロック１０８では次いで、後の依存関係解析のために残りのデータを索引付けしかつ記憶する。
【００１９】
ここで図２を参照すると、ブロック１０６におけるデータ縮約を行うための方法が示されている。ブロック２０２では、インターリーブ依存関係によるイベントの極度のバーストを生じさせるビジープロセスを識別する。それによって、ブロック０２は、例えば、実行中のプロセスがある一定の時間間隔で相互作用するリソースの数（例えば、ファイル、ネットワーク接続など）、およびこれらのイベント強度を追跡することを含む実行中のプロセスそれぞれを追跡する。両方のメトリックが規定の閾値を上回る場合、プロセスはビジーと分類され、本明細書では「最新」プロセスと称される。最新プロセスは変動する時間窓による統計的計算を使用して検出可能であり、時間窓におけるプロセスに関連しているイベントの数が閾値を超える場合、そのプロセスは最新プロセスとマーキングする。１つの具体的な例では、閾値は５秒当たり２０のイベントに設定されてよい。
【００２０】
ブロック２０３では、イベントがビジープロセスに属しているかどうかによって全てのイベントを分類するイベントディスパッチングを行う。ビジープロセスに属するイベントはブロック２０５によって後述される図５のプロセスの流れにリダイレクトされる。ブロック２０４では、ビジープロセスに属していないイベントに対する依存関係追跡および集約を行う。ブロック２０６では、縮約されたイベントストリームを生じさせるイベント要約を行う。この方法では無損失データ縮約を行う。図２の方法と共に、無損失方法によって縮約不可能であるイベントを生じさせるビジープロセスをハンドリングする損失データ縮約を行う別の方法が行われてもよい。
【００２１】
ブロック２０４の依存関係追跡および集約は、さらなる追跡のためのフィードバックとして使用されてよい、一時的なイベントおよび状態を更新するために使用される。それによって、ブロック２０４では、イベントストリームにおいて重要である因果律を伝達するキーイベント、およびイベント集約の候補である対応するシャドウイベントを解析しかつ識別する。
【００２２】
ここで図３を参照すると、依存関係グラフ３００についてイベント集約を逆追跡する例が示されている。依存関係グラフは、例えば、根本原因診断、侵入からの回復、攻撃による影響の解析、および依存関係グラフ３００において因果律追跡を行う順方向追跡などの多くの法科学解析応用において使用されてよい。
【００２３】
ノード３０２は種々のシステムエンティティ（例えば、プロセスまたはファイル）を表し、ノード３０２間の方向づけられたエッジは、イニシエータとターゲットとの間にシステムイベントを表す。ノードは、Ａ、Ｂ、Ｃ、およびＤと標示され、これらは、１つの具体的な例では、それぞれ、「／ｅｔｃ／ｂａｓｈ」、「／ｅｔｃ／ｂａｓｈｒｃ」、「／ｅｔｃ／ｉｎｐｕｔｒｃ」、および「／ｂｉｎ／ｗｇｅｔ」というエンティティとみなされてよい。エッジは、例えば、ｅNM-iと記述されてよく、この場合、Ｎはイニシエータノードを表し、Ｍはターゲットノードを表し、ｉはこれら２つのノード間のイベントの順序についてのインデックスを表す。よって、ノードＡとノードＢとの間の第１の記録済みイベントは、ｅAB-1と示されることになり、このような第２のイベントはｅAB-2と示されることになり、以降同様に続く。それぞれのイベントは、この例では、イベントタイプ、およびイベントが生じる間の時間窓で表現されている。よって、イベントｅAB-1は、タイムスタンプ１０とタイムスタンプ２０との間の時間窓：［１０，２０］で生じる「読み取り」イベントとされてよい。このように、ノードおよびエッジは、因果律解析に必要とされる情報：（エッジの方向によって反映される）情報が流れる方向、イベントのタイプ、および、イベントが生じる間の窓を符号化する。
【００２４】
因果律追跡は、順方向または逆方向のどちらかでエッジの因果関係をたどる、再帰グラフのトラバーサル手順である。例えば、図３では、イベントｅAD-1の根本原因を調べるために、ｅAD-1に貢献していた可能性がある全てのエッジを再帰的にたどる逆追跡がこのエッジに対して適用される。因果関係は、ノードｈがノードＩと同じである場合、かつｅghの終了時間がｅijの終了時間前である場合、２つのイベントｅghおよびｅijに対して正式に定められてよい。ｅghがｅijに対する情報の流れを有し、かつｅijが第３のイベントｅmnに対する情報の流れを有する場合、ｅijはｅmnに対する情報の流れを有する。
【００２５】
２つのイベントエッジが同じノードのペアｅij-1およびｅij-2にわたるとすると、ｅij-2の終了時間はｅij-1の終了時間よりも遅く、ｉ＝ｍ、ｊ≠ｎ、ｅmnの終了時間がｅij-1の終了時間よりも遅いこと、およびｅmnの終了時間がｅij-2の終了時間前であることを全て満たすイベントエッジｅmnが存在しない時かつその時に限り、ｅij-2はｅij-1の逆因果律をシャドウイングする。同様に、ｉ≠ｍ、ｊ＝ｎ、ｅmnの終了時間がｅij-1の終了時間よりも遅いこと、およびｅmnの終了時間がｅij-2の終了時間前であることを全て満たすイベントエッジｅmnが存在しない時かつその時に限り、ｅij-1はｅij-2の順因果律をシャドウイングする。２つのイベントエッジはその時、ｅij-2がｅij-1を逆方向にシャドウイングし、かつｅij-1がｅij-2を順方向にシャドウイングする時かつその時に限り、追従性が完全に同等である。
【００２６】
２つのイベントは、同じタイプを有し、かつ同じソースおよび宛先ノードを共有する場合のみ集約される。読み取り／書き込みなどのある特定のタイプのイベントについて、２つのイベントはまた、ある特定の属性（例えば、ファイルを開くという記述子）を共有する必要があってもよい。集約可能なイベントの組は、キーイベントおよびそのシャドウイベントのスーパーセットである。
【００２７】
本例にしたがって、／ｅｔｃ／ｂａｓｈｒｃ（ノードＢ）というファイルの２回の読み取り、／ｅｔｃ／ｉｎｐｕｔｒｃ（ノードＣ）というファイルの２回の読み取り、および／ｂｉｎ／ｗｇｅｔ（ノードＤ）の１回の実行があり、これら全ては／ｂｉｎ／ｂａｓｈ（ノードＡ）のプロセスによって行われる。矢印は、読み取りファイルから／ｂｉｎ／ｂａｓｈへの、および／ｂｉｎ／ｂａｓｈから実行される／ｂｉｎ／ｗｇｅｔへの情報の流れを示す。因果律解析がイベントｅAD-1の原因を判断するために採用される場合、イベントｅAD-1よりも前にノードＡ内への情報の流れを引き起こすイベントが逆追跡される。このイベントは、イベントｅAB-1（ｒｅａｄ，［１０，２０］）、ｅAC-1（ｒｅａｄ，［１５，２３］）、およびｅAC-2（ｒｅａｄ，［２８，３２］）を含む。この例では、イベントｅAB-2（ｒｅａｄ，［４０，４２］）は、対象のイベント３０８ｅAD-1（ｅｘｅｃ，［３６，３７］）の後に生じる。その結果、ｅAB-2が存在することで、ｅAD-1の因果律への因果律の影響はない。無関係のイベントは点線３０７でマーキングされている。
【００２８】
ＡとＣとの間の第２のイベント、ｅAC-2は、ｅAC-1の後に生じ、両方のイベントは同じエンティティに関わる同じタイプ（読み取り）を有する。その結果、イベントストリームにおけるｅAC-1が存在することによって、ｅAD-1の逆方向依存関係に対する因果律の影響はない。換言すれば、ｅAC-2は、イベントｅAC-1をシャドウイングするキーイベント３０４であり、シャドウイベントは破線３０６によって示されている。攻撃の法科学解析の例では、シャドウイベントはキーイベントによって既に明らかにされている同じイベント攻撃者の動きを表現している。したがって、データ量は、例えば、「シャドウイベント」における情報を「キーイベント」にマージするまたは要約する一方で、キーイベントにおける因果律関連情報を維持することによって、因果関係を完全な状態のままで保持することによって縮約できる。
【００２９】
ここで図４を参照すると、依存関係グラフ４００についてイベント集約を順方向追跡する例が示されている。この例では、順方向追跡する集約可能なイベントが識別される。ノードＥは例えば、「ｅｘｃｅｌ．ｅｘｅ」であってもよく、ノードＦは「ｓａｌａｒｙ．ｘｌｓ」であってもよく、ノードＧは「ｄｒｏｐｂｏｘ．ｅｘｅ」であってもよく、ノードＨは「ｂａｃｋｕｐ．ｅｘｅ」であってもよく、イベントは、ｅEF-1（ｗｒｉｔｅ，［１０，２０］）、ｅEF-1（ｗｒｉｔｅ，［３０，３２］）、ｅFG-1（ｒｅａｄ，［４２，４４］）、ｅFG-2（ｒｅａｄ，［３８，４０］）、およびｅFH-1（ｒｅａｄ，［１８，２７］）を含んでもよい。
【００３０】
この例では、対象のイベント３０８はイベントｅEF-2であり、時間窓は［３０，３２］である。イベントｅEF-1およびｅFH-1は両方とも、ｅEF-2の前に生じるため、順方向追跡に対して無関係のイベント３０７としてマーキングされる。イベントｅFG-2はｅFG-1の前に生じるため、ｅFG-2がキーイベント３０４に、ｅFG-1がシャドウイベント３０６になる。
【００３１】
ブロック２０６は、データ縮約を行うことを担う。キーイベント３０４およびその関連のシャドウイベント３０６を前提として、ブロック２０６では、全てのイベントの時間窓を、イベントの全ての組の開始および終了を厳重にカプセル化する単一の時間窓にマージする。さらに、他の属性のイベントに対して、イベントタイプ特有のデータ要約が行われる。例えば、「読み取り」イベントについて、全てのイベントにおけるデータ読み取り量は、その組による全データ読み取り量を示す単数に累積されてもよい。
【００３２】
よって、ノードＸおよびＹ間に３つのイベント（ｅXY-1（ｗｒｉｔｅ，［１０，２０］，２０バイト）、ｅXY-2（ｒｅａｄ，［１８，２７］，５０バイト）、およびｅXY-3（ｗｒｉｔｅ，［３０，３２］，２００バイト））が存在する場合、キーイベントはｅXY-3と識別されてもよく、ｅXY-1およびｅXY-2はシャドウイベントとして識別される。イベントはその後、単一のイベントＥXY-1（ｗｒｉｔｅ，［１０，３２］，２７０バイト）に縮約されてもよい。
【００３３】
ここで、図５を参照すると、ブロック１０６においてデータ縮約を行うための２次プロセスが示されている。この２次ワークフローは図２のプロセスに加えてかつ並列に行われてもよい。上記のように、ブロック２０２ではビジープロセスを検出し、ブロック２０５ではビジープロセスをディスパッチする。ブロック５０２では、ディスパッチされた最新プロセスを受信し、かつｕは最新プロセスである隣接セットＮ（ｕ）を形成するために相互作用に関わる全てのオブジェクトを収集する。全ての集約候補の追従性をチェックする代わりに、隣接セットＮ（ｕ）内および外への情報の流れを有するイベントだけがチェックされる。これによって、Ｎ（ｕ）内に対象イベントとして選択されるイベントがない限り、高品質の追跡結果を生じさせることが保証される。
【００３４】
ビジープロセスのイベントに基づいて、ブロック５０４では依存関係が近似するデータ縮約を行う。１つの例では、ビジープロセスは走査しているファイルであってもよい。そのプロセス、および他のシステムオブジェクトとのこの方向づけられた相互作用が追跡されてもよい。これらのイベントの全ては単一の高レベル動作の一部とみなされてもよい。その結果、イベントの中で厳密な因果律は無視でき、該イベントは、その他の場合は集約可能とならない場合でも集約されてもよい。ブロック２０６では、次いで、ブロック５０４によって指示されるイベントを集約する。図５の結果として生じる集約されたイベントは、いくらかの精度損失を取り込む場合があるが、この精度損失はビジープロセスによって生じたイベントに多く含まれている。
【００３５】
本明細書に説明される実施形態は、完全なハードウェア、完全なソフトウェア、またはハードウェア要素およびソフトウェア要素両方を含むものであってもよい。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実装される。
【００３６】
実施形態は、コンピュータまたは任意の命令実行システムによってまたはこれに関連して使用するためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品を含んでもよい。コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによってまたはこれに関連して使用するためのプログラムを記憶する、通信する、伝搬する、または移送する任意の装置を含んでもよい。媒体は、磁気、光学、電子、電磁、赤外線、もしくは半導体システム（または装置もしくはデバイス）、または伝搬媒質とすることができる。媒体は、半導体もしくはソリッドステートメモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、硬い磁気ディスク、および光学ディスクなどのコンピュータ可読記憶媒体を含んでもよい。
【００３７】
それぞれのコンピュータプログラムは、本明細書に説明される手順を行うために記憶媒体またはデバイスがコンピュータによって読み出される時にコンピュータの動作を構成しかつ制御するために、汎用または専用プログラマブルコンピュータによって読み取り可能な機械可読記憶媒体またはデバイス（例えば、プログラムメモリまたは磁気ディスク）において実体的に記憶されてもよい。本発明のシステムはまた、コンピュータプログラムで構成されるコンピュータ可読記憶媒体において具現化されるものとみなされてもよく、そのように構成される記憶媒体によって、コンピュータは、本明細書に説明される機能を果たすように具体的かつ規定のやり方で動作する。
【００３８】
プログラムコードを記憶するおよび／または実行するのに適したデータ処理システムは、システムバスを通して記憶素子に直接または間接的に結合される少なくとも１つのプロセッサを含んでもよい。記憶素子は、プログラムコードの実際の実行中に用いられるローカルメモリ、大容量記憶装置、および、コードが実行中に大容量記憶装置から抽出される回数を減らすために少なくともいくつかのプログラムコードの一時的な記憶域を提供するキャッシュメモリを含むことができる。（限定はされないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む）入力／出力またはＩ／Ｏデバイスは、直接、または介在するＩ／Ｏコントローラを通してシステムに結合されてもよい。
【００３９】
ネットワークアダプタはまた、データ処理システムが、介在するプライベートネットワークまたはパブリックネットワークを通して他のデータ処理システムまたはリモートプリンタもしくは記憶デバイスに結合されるようにすることを可能にするためにシステムに結合されてもよい。モデム、ケーブルモデム、およびイーサネット（登録商標）カードは、現在入手可能なネットワークアダプタのタイプのほんの一部に過ぎない。
【００４０】
本実施形態の１つの特定の応用は、侵入してくる多段階攻撃を含んでよいＡｄｖａｎｃｅｄ  Ｐｅｒｓｉｓｔｅｎｔ  Ｔｈｒｅａｔ（ＡＰＴ）攻撃を検出する分野におけるものである。攻撃者が、企業のコンピュータシステム内に段階的に入り込むこと、このシステムのインフラストラクチャを理解すること、および、重要な情報を盗むまたは重要なインフラストラクチャを妨害することを行うのにかなりの時間をかける可能性がある。従来の攻撃と比較して、ＡＰＴ攻撃などの洗練された多段階攻撃は、企業のビジネスに対してはるかに大きい深刻な損害を与える可能性がある。これらの攻撃を阻止するために、企業には、個々に、警告を発するほどの警戒心を抱かせないかもしれない複数回の活動にわたる「点を結んで全体像を作り上げる」ような解決策が有効であろう。攻撃者は、場合によっては、企業内の任意のデバイスを攻撃する恐れがあるため、攻撃の出所の情報は全てのホストから監視されている。
【００４１】
ある調査では、ＡＰＴ攻撃は、有害な行為を開始する前に、平均で約６か月間、場合によって何年もの間、未発見のままであったことが分かった。このことは、このような攻撃の影響を検出しかつ理解するために、企業は少なくとも半年分のイベントデータを記憶する必要があることを暗示している。システムレベルの監査データだけが容易に１ホスト当たり１Ｇｂに達することができる。２００，０００のホストを有する企業の現実世界のシナリオでは、データ記憶域はおよそ１７ペタバイト〜およそ７０ペタバイトである。
【００４２】
データは、効率的に記憶されるだけでなく、効率的に抽出されるように索引付けされる必要がある。本実施形態は、攻撃を検出する能力の精度に実質的な影響を与えることなく、イベント情報を集約する能力を提供する。
【００４３】
ここで図６を参照すると、依存関係追跡のためのシステム６００が示されている。システム６００は、ハードウェアプロセッサ６０２およびメモリを含む。システム６００は、１つの実施形態において、メモリ６０４によって記憶され、かつプロセッサ６０２によって実行されるハードウェアとして実装されてよい１つまたは複数の機能モジュールも含む。代替的な実施形態では、機能モジュールは、例えば、特定用途向け集積チップまたはフィールドプログラマブルゲートアレイの形式の、１つまたは複数の個別のハードウェアコンポーネントとして実装されてよい。
【００４４】
機能モジュールは、例えば、高レベルおよび低レベルのイベントを追跡しかつイベントストリームを生じさせるイベントモニタ６０６を含む。追跡モジュール６０８は、イベントストリームにおけるキーイベント、および対応するシャドウイベントを識別する。ビジープロセスモジュール６１０はイベントストリーム内の最新プロセスを識別し、近似モジュール６１２は、最新プロセスに関連しているイベントの集約を判断する。集約モジュール６１４は、追跡モジュールおよび近似モジュール６１２の出力にしたがってイベントを集約する。因果律追跡モジュール６１６は次いで、イベントストリームおよびイベント集約を使用して、対象イベントに対する因果律追跡を行う。
【００４５】
ここで図７を参照すると、送信デバイス１００または受信デバイス１２０を表してよい例示の処理システム７００が示されている。処理システム７００は、システムバス７０２を介して他のコンポーネントに動作可能に結合される少なくとも１つのプロセッサ（ＣＰＵ）７０４を含む。キャッシュ７０６、読み取り専用メモリ（ＲＯＭ）７０８、ランダムアクセスメモリ（ＲＡＭ）７１０、入力／出力（Ｉ／Ｏ）アダプタ７２０、音声アダプタ７３０、ネットワークアダプタ７４０、利用者インターフェースアダプタ７５０、およびディスプレイアダプタ７６０は、システムバス７０２に動作可能に結合されている。
【００４６】
第１の記憶デバイス７２２および第２の記憶デバイス７２４は、Ｉ／Ｏアダプタ７２０によってシステムバス７０２に動作可能に結合されている。記憶デバイス７２２および７２４は、ディスク記憶デバイス（例えば、磁気または光学ディスク記憶デバイス）、およびソリッドステート磁気デバイスなどの任意のものとすることができる。記憶デバイス７２２および７２４は、同じタイプの記憶デバイスまたは異なるタイプの記憶デバイスとすることができる。
【００４７】
スピーカ７３２は、音声アダプタ７３０によってシステムバス７０２に動作可能に結合されている。トランシーバ７４２はネットワークアダプタ７４０によってシステムバス７０２に動作可能に結合されている。ディスプレイデバイス７６２は、ディスプレイアダプタ７６０によってシステムバス７０２に動作可能に結合されている。
【００４８】
第１の利用者入力デバイス７５２、第２の利用者入力デバイス７５４、および第３の利用者入力デバイス７５６は、利用者インターフェースアダプタ７５０によってシステムバス７０２に動作可能に結合されている。利用者入力デバイス７５２、７５４、および７５６は、キーボード、マウス、キーパッド、画像取り込みデバイス、動き検知デバイス、マイクロホン、前述のデバイスのうちの少なくとも２つの機能性を取り入れているデバイスなどの任意のものとすることができる。当然ながら、本原理の趣旨を守りつつ、他のタイプの入力デバイスも使用可能である。利用者入力デバイス７５２、７５４、および７５６は、同じタイプの利用者入力デバイスまたは異なるタイプの利用者入力デバイスとすることができる。利用者入力デバイス７５２、７５４、および７５６は、システム７００に対する情報の入力および出力を行うために使用される。
【００４９】
当然ながら、処理システム７００はまた、当業者によって容易に予期されるように、（示されない）他の要素を含んでもよく、さらにはある特定の要素を省いてもよい。例えば、当業者によって容易に理解されるように、さまざまな他の入力デバイスおよび／または出力デバイスは、処理システム７００の特定の実装形態によって、処理システム７００に含まれ得る。例えば、さまざまなタイプの無線ならびに／または有線入力および／もしくは出力デバイスが使用可能である。さらに、当業者によって容易に認識されるように、さまざまな構成における追加のプロセッサ、コントローラ、およびメモリなども、利用可能である。処理システム７００のこれらのおよび他の変形は、本明細書に提供される本原理の教示を前提として、当業者によって容易に予期されるものである。
【００５０】
ここで図８を参照すると、侵入検出および回復システム３００が示されている。侵入検出システム３００は、上述されるような因果律追跡システム６００を含む。侵入検出および回復システム８００は、同じハードウェアプロセッサ６０２およびメモリ６０４を使用して、因果律追跡システム６００と密に一体化してもよい、または、代替的には、該システム８００自体のスタンドアロンハードウェアプロセッサ８０２およびメモリ８４０を有してもよい。後者の場合、侵入検出および回復システム８００は、例えば、プロセス間通信、ネットワーク通信、または任意の他の適切な媒体および／もしくはプロトコルによって、因果律追跡システムと通信してもよい。
【００５１】
侵入検出および回復システム８００は、調査のために特定のイベントにフラグを立ててもよい。これは、例えば、イベントが予想外である、あるいは不適切である時判断するために１つまたは複数の経験則または機械学習プロセスを使用して自動的に行われてもよい。調査のためにイベントにフラグを立てることは、代替的にはまたはさらに、調査のために具体的なイベントを選択する人間オペレータによって行われてもよい。侵入検出および回復システム８００は、次いで、フラグが立てられたイベントに対する因果律トレースを効率的に作り上げるために因果律追跡システム６００に対してフラグが立てられたイベントを指示する。この因果律トレースを使用して、侵入検出モジュール８０５は、侵入が発生したかどうかを判断する。侵入検出モジュール８０５は、例えば、因果律追跡システム６００によって提供された因果律情報を活用する１つまたは複数の経験則または機械学習プロセスを使用して動作してもよく、侵入が発生したことを判断するために人間オペレータによる調査によって補足されてもよい。
【００５２】
侵入が検出された時、緩和モジュール８０６は、１つまたは複数の緩和動作を自動的にトリガしてもよい。緩和動作は、例えば、１つまたは複数の影響を受けるまたはアクセス可能なコンピューティングシステムにおけるアクセス許可を変更すること、影響されたデータまたはプログラムを隔離すること、動作のロギングまたは監視を増やすこと、および、侵入の影響または範囲を止めるまたは減少させる役割を果たしてもよい任意の他の自動的な作用を含んでもよい。緩和モジュール８０６は、因果律トレースを使用して侵入の影響の順方向追跡を行うことによって緩和および回復を導くことができる。警告モジュール８０８は人間オペレータに侵入を警告して、因果律情報、および発生させた任意の緩和動作に関する情報を提供してもよい。
【００５３】
前述のものは、あらゆる点で説明を目的とする例示的なものであって制限するものではないと理解されるべきであり、本明細書に開示される本発明の範囲は詳細な説明から判断されるのではなく、むしろ、特許法によって許可される最大の範囲にしたがって解釈される特許請求の範囲によって判断される。本明細書に示されかつ説明される実施形態が本発明の原理を説明するものに過ぎず、当業者が本発明の範囲および趣旨から逸脱することなくさまざまな修正を実施してもよいことは、理解されたい。当業者は、本発明の範囲および趣旨から逸脱することなくさまざまな他の特徴の組み合わせを実装することが可能である。そのように、特許法によって必要とされる詳細および特定性と共に、本発明の態様を説明したが、特許証によって保護されるものが特許請求されかつ所望されていることは、添付の特許請求の範囲に示されている。
【図１】
2019506678.tif 000003
【図２】
2019506678.tif 000004
【図３】
2019506678.tif 000005
【図４】
2019506678.tif 000006
【図５】
2019506678.tif 000007
【図６】
2019506678.tif 000008
【図７】
2019506678.tif 000009
【図８】
2019506678.tif 000010
【国際調査報告】
2019506678.tif 000011
2019506678.tif 000012