(57)【要約】  異常イベントを報告するための方法及びシステムは、ネットワークにおけるプロセスレベルイベントの状態をモデル化するプロセスグラフに基づいてアラートのセットをホスト内でクラスタリングすることを含む。隠れた関係性でクラスタリングすることが、それぞれのクラスタにおけるアラート間の隠れた関係性に基づいてホスト内でクラスタ化されたアラートに実行される。ホスト間でクラスタリングすることが、ネットワークにおける接続イベント間の送信元及び宛先の関係性をモデル化するトポロジグラフに基づいて隠れた関係性でクラスタ化されたアラートに実行される。信用度の閾値を超える、ホスト間でクラスタ化されたアラートが報告される。
2019514315.tif 000002
【特許請求の範囲】
【請求項１】
異常イベントを報告するための方法であって、
ネットワークにおけるプロセスレベルイベントの状態をモデル化するプロセスグラフに基づいてアラートのセットをホスト内でクラスタリングすることと、
それぞれのクラスタにおけるアラート間の隠れた関係性に基づいて前記ホスト内でクラスタ化されたアラートを隠れた関係性でクラスタリングすることと、
前記ネットワークにおける接続イベント間の送信元及び宛先の関係性をモデル化するトポロジグラフに基づいて前記隠れた関係性でクラスタ化されたアラートをホスト間でクラスタリングすることと、
信用度の閾値レベルを超える、ホスト間でクラスタ化されたアラートを報告することと、
を有する方法。
【請求項２】
ホスト内でクラスタリングすることが、プロセス距離閾値未満であるプロセス距離を有するアラートを、共にクラスタリングすることを含む、請求項１に記載の方法。
【請求項３】
前記プロセス距離が、前記プロセスグラフにおける同じホストの２つの異なるプロセス間の最短経路として計算される、請求項２に記載の方法。
【請求項４】
隠れた関係性でクラスタリングすることが、閾値時間内の同じホストの同じユーザからのアラートを、共にクラスタリングすることを有する、請求項１に記載の方法。
【請求項５】
ホスト間でクラスタリングすることが、前記トポロジグラフにおけるそれぞれのホスト間のエッジを有し、閾値時間内で生じるアラートを、共にクラスタリングすることを有する、請求項１に記載の方法。
【請求項６】
受信したアラートに基づいて前記プロセスグラフ及び前記トポロジグラフを構築することをさらに有する、請求項１に記載の方法。
【請求項７】
前記プロセスグラフ及び前記トポロジグラフからの要素を、前記要素が閾値時間よりも古い最終接続時間値を有する場合に除去することをさらに含む、請求項６に記載の方法。
【請求項８】
ホスト間でクラスタ化されたアラートの信用度を、前記ホスト間でクラスタ化されたアラートで示される各プロセスの代表アラートのアラート信用度を合計することで計算することをさらに有する、請求項１に記載の方法。
【請求項９】
各代表アラートのアラート信用度を、前記代表アラートを生成した検出器によって提供された異常スコアと前記検出器の重みとの積として計算することをさらに有する、請求項８に記載の方法。
【請求項１０】
前記検出器の前記重みが、前記検出器によって生成された誤アラートの数と前記検出器によって生成されたアラートの総数の比として計算される、請求項９に記載の方法。
【請求項１１】
異常イベントを報告するためのシステムであって、
ネットワークにおけるプロセスレベルイベントの状態をモデル化するプロセスグラフに基づいてアラートのセットにホスト内でクラスタリングを実行し、それぞれのクラスタにおけるアラート間の隠れた関係性に基づいて前記ホスト内でクラスタ化されたアラートに隠れた関係性でクラスタリングを実行し、前記ネットワークにおける接続イベント間の送信元及び宛先の関係性をモデル化するトポロジグラフに基づいて前記隠れた関係性でクラスタ化されたアラートにホスト間でクラスタリングを実行するように構成されたプロセッサを含むクラスタリングモジュールと、
信用度の閾値を超える、ホスト間でクラスタ化されたアラートを報告するように構成されたユーザインタフェースと、
を有するシステム。
【請求項１２】
前記クラスタリングモジュールが、プロセス距離閾値未満であるプロセス距離を有するアラートを、共にクラスタリングするようにさらに構成された、請求項１１に記載のシステム。
【請求項１３】
前記プロセス距離が、前記プロセスグラフにおける同じホストの２つの異なるプロセス間の最短経路として計算される、請求項１２に記載のシステム。
【請求項１４】
前記クラスタリングモジュールが、閾値時間内の同じホストの同じユーザからのアラートを、共にクラスタリングするようにさらに構成された、請求項１１に記載のシステム。
【請求項１５】
前記クラスタリングモジュールが、前記トポロジグラフにおけるそれぞれのホスト間のエッジを有し、閾値時間内で生じるアラートを、共にクラスタ化するようにさらに構成された、請求項１１に記載のシステム。
【請求項１６】
受信したアラートに基づいて前記プロセスグラフ及び前記トポロジグラフを構築するように構成されたブループリント更新モジュールをさらに有する、請求項１１に記載のシステム。
【請求項１７】
前記ブループリント更新モジュールが、前記プロセスグラフ及び前記トポロジグラフからの要素を、前記要素が閾値時間よりも古い最終接続時間値を有する場合に除去するようにさらに構成される、請求項１６に記載のシステム。
【請求項１８】
前記クラスタリングモジュールが、ホスト間でクラスタ化されたアラートの信用度を、前記ホスト間でクラスタ化されたアラートで示される各プロセスの代表アラートのアラート信用度を合計することで計算するようにさらに構成された、請求項１１に記載のシステム。
【請求項１９】
前記クラスタリングモジュールが、各代表アラートのアラート信用度を、前記代表アラートを生成した検出器によって提供された異常スコアと前記検出器の重みとの積として計算するようにさらに構成された、請求項１８に記載のシステム。
【請求項２０】
前記検出器の前記重みが、前記検出器によって生成された誤アラートの数と前記検出器によって生成されたアラートの総数の比として計算される、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１６年４月４日に出願された米国仮特許出願第６２／３１７，７８１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０００２】
本発明は、コンピュータ及びネットワークセキュリティに関し、特にそのようなネットワークのノードコミュニティ及び役割の統合された発見（integrated discovery）に関する。
【背景技術】
【０００３】
企業ネットワークは、企業における重要なシステムであり、ミッションクリティカルな情報の大部分を搬送する。そのような重要性の結果として、これらのネットワークはしばしば攻撃の標的となる。それゆえ、企業ネットワークにおける通信は、攻撃を検出するステップとして、異常なネットワーク通信を検出するために頻繁にモニタされて分析される。
【０００４】
コンピュータ及び他のデバイスをモニタするため、多数の検出器が企業ネットワークで使用されている。これらの検出器はモニタリングデータに基づいて異なる種類のアラートを生成する。しかしながら、異なる検出器は、異なるセマンティクス（semantics）のレポートを生成する可能性がある。例えば、ネットワーク検出器は、ネットワーク接続のトポロジをモニタし、疑わしいクライアントが安定したサーバへ接続するときにアラートを生成する。プロセスファイル検出器は、見知らぬプロセスが機密ファイルへアクセスするときにアラートを生成する。これら異種混在（heterogeneous）アラートの管理は難題である。
【０００５】
さらに、実際のセキュリティインシデントは、異なる検出器にわたって多数のアラートを引き起こす可能性がある。しかしながら、複数のアラートは、時間的及び空間的な差を意味する、同時にまたは同じホストによって報告されない可能性がある。加えて、企業システムの複雑さのために、単一の検出器の精度が非常に低いことがあり、多くのアラートが人のオペレータにフィルタ処理の負担をかける誤検出となる。侵入検出では時間が重要であるため、いかなる遅延もシステム及びセキュリティ担当者による対応する能力の妨げになる。
【０００６】
既存のセキュリティシステムは、正常な動作と異常な動作の判別に用いる良好な訓練データも欠いている。報告されたアラートの大規模なセットを手作業でラベル付けするのは、コストがかかり、間違いを起こしやすい。加えて、ほとんどの実際のアラートは未知の攻撃であり、エンドユーザはアラートパターンに関する知識がなく、事前に有用なモデルを定義することができない。
【発明の概要】
【０００７】
異常イベントを報告するための方法は、ネットワークにおけるプロセスレベルイベントの状態をモデル化するプロセスグラフに基づいてアラートのセットをホスト内でクラスタリングすることを含む。隠れた関係性でクラスタリングすることが、それぞれのクラスタにおけるアラート間の隠れた関係性に基づいてホスト内でクラスタ化されたアラートに実行される。ホスト間でクラスタリングすることが、ネットワークにおける接続イベント間の送信元及び宛先の関係性をモデル化するトポロジグラフに基づいて隠れた関係性でクラスタ化されたアラートに実行される。信用度の閾値を超える、ホスト間でクラスタ化されたアラートが報告される。
【０００８】
異常イベントを報告するためのシステムは、ネットワークにおけるプロセスレベルイベントの状態をモデル化するプロセスグラフに基づいてアラートのセットにホスト内でクラスタリングを実行し、それぞれのクラスタにおけるアラート間の隠れた関係性に基づいてホスト内のクラスタ化されたアラートに隠れた関係性でクラスタリングを実行し、ネットワークにおける接続イベント間の送信元及び宛先の関係性をモデル化するトポロジグラフに基づいて隠れた関係性でクラスタ化されたアラートにホスト間クラスタリングを実行するように構成されたプロセッサを有するクラスタリングモジュールを含む。ユーザインタフェースは、信用度の閾値を超える、ホスト間でクラスタ化されたアラートを報告するように構成される。
【０００９】
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
【図面の簡単な説明】
【００１０】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【００１１】
【図１】図１は、本原理による自動セキュリティインテリジェンスシステム構成に関するブロック／流れ図である。
【００１２】
【図２】図２は、本原理による侵入検出エンジン構成に関するブロック／流れ図である。
【００１３】
【図３】図３は、ネットワーク分析モジュール構成に関するブロック／流れ図である。
【００１４】
【図４】図４は、本発明の一実施形態によるトポロジブループリントグラフを構築する方法のブロック／流れ図である。
【００１５】
【図５】図５は、本発明の一実施形態によるプロセスブループリントグラフを構築する方法のブロック／流れ図である。
【００１６】
【図６】図６は、本発明の一実施形態による複数のアラートをクラスタ化する方法のブロック／流れ図である。
【００１７】
【図７】図７は、本発明の一実施形態によるホスト内でアラートをクラスタリングする方法のブロック／流れ図である。
【００１８】
【図８】図８は、本発明の一実施形態によるアラート間の隠れた関係性を見出す方法のブロック／流れ図である。
【００１９】
【図９】図９は、本発明の一実施形態によるホスト間でアラートをクラスタリングする方法のブロック／流れ図である。
【００２０】
【図１０】図１０は、本発明の一実施形態によるアラートのクラスタの信用度を計算する方法のブロック／流れ図である。
【００２１】
【図１１】図１１は、本発明の一実施形態によるネットワーク分析システムのブロック図である。
【００２２】
【図１２】図１２は、本発明の１つの実施形態による処理システムのブロック図である。
【発明を実施するための形態】
【００２３】
本原理によれば、本実施形態の検出は、大規模なセキュリティシステムにおけるアラートを結合するグラフベースアラート結合エンジンを用いてアラートの結合及び管理を行う。本実施形態は、企業内のホスト間のネットワーク接続状況を記録するトポロジグラフと、プロセスとその対象（例えば、ファイル、他のプロセスまたはインターネットソケット）との関係性を記録するプロセスグラフとの２種類のブループリントグラフを含む、ブループリントグラフモデルを用いる。両方のグラフは、ストリーミングデータを介して構築されて動的に維持される。
【００２４】
新しいアラートが報告されると、本実施形態は、ブループリントグラフ情報に基づいて新しいアラートを既存の最近のアラートとクラスタリングすることを試みる。次に、本実施形態は、アラート毎に信用度スコアを計算し、このスコアに基づいてアラートをランク付けする。そして、本実施形態は、誤アラートをフィルタ除去し、レポートに応答してセキュリティ管理活動を実行する。
【００２５】
したがって、本実施形態は、異なるセマンティクスを有し、異なる種類の検出器から生じる異種混在アラートをリアルタイムで統合し、いかなる事前定義されたモデルまたは訓練データセットも無しに運用できる。アラートは、それらが到着したときに分類され、評価されて、ストリーミング方式で統合される。本実施形態は、さらに誤アラート率を低減し、侵入／異常検出タスクの精度を向上させる。
【００２６】
ここで、同じ数字が同一または同様の要素を表す図面、まず図１を詳細に参照すると、図１には自動セキュリティインテリジェンスシステム（ＡＳＩ：Automatic Security Intelligence）構成が示されている。ＡＳＩシステムは３つの主要構成要素を含む。すなわち、動作データを収集するために企業ネットワークの各マシンにエージェント１０がインストールされ、バックエンドサーバ２００がエージェント１０からデータを受信し、該データを前処理し、該前処理されたデータを分析サーバ３０に送信し、分析サーバ３０がセキュリティアプリケーションプログラムを実行してデータを分析する。
【００２７】
各エージェント１０は、エージェントマネージャ１１、エージェントアップデータ１２及びエージェントデータ１３を含み、エージェントデータ１３は、アクティブプロセス、ファイルアクセス、ネットソケット、１サイクル当たりの命令数及びホスト情報に関する情報を含んでもよい。バックエンドサーバ２０は、エージェントアップデータサーバ２１及び監視データ記憶装置を含む。分析サーバ３０は、侵入検出３１、セキュリティポリシーコンプライアンス評価３２、インシデントバックトラック及びシステム復旧３３、並びに集中型脅威探索及びクエリ３４を含む。
【００２８】
次に図２を参照すると、図２には侵入検出３１に関するさらなる細部が示されている。侵入検出エンジンには５つのモジュールがある。すなわち、侵入検出エンジンは、バックエンドサーバ２０からデータを受信し、対応するデータをネットワークレベルモジュール４２及びホストレベルモジュール４３に分配するデータ分配器４１と、ネットワーク通信（ＴＣＰ及びＵＤＰを含む）を処理し、異常な通信イベントを検出するネットワーク分析モジュール４２と、ユーザ対プロセスイベント、プロセス対ファイルイベント及びユーザ対レジストリイベントを含む、ホストレベルイベントを処理するホストレベル分析モジュール４３と、ネットワークレベル異常とホストレベル異常とを統合し、それらの結果を信用できる侵入イベントにリファイン（refine）するオンラインアラート結合モジュール４４と、検出結果をエンドユーザに出力する可視化モジュール４５とを有する。
【００２９】
次に図３を参照すると、図３には、ネットワーク分析モジュール４２に関するさらなる細部が示されている。ネットワーク分析モジュール４２は、少なくとも２つの主要構成要素を有する。すなわち、ネットワーク分析モジュール４２は、企業ネットワークの通信のストリーミングイベント５１から構築された異種混在グラフであって、グラフのノードが企業ネットワークのマシンを表し、エッジがノード間の正常な通信パターンを表す、ブループリントグラフ５２と、送信元からの様々な異種混在アラートを入力し、ブループリントグラフに基づいて分析を実施し、信用できるアラートレポートを出力するオンラインアラート結合及びランク付けモジュール５４とを含む。ブループリントグラフ５２は、特にトポロジグラフ及びプロセスグラフを含む。トポロジグラフは、オンライン異常検出のためにネットワーク分析モジュール４２で用いられてもよい。
【００３０】
ＡＳＩエージェント１０は、企業ネットワークのホストにインストールされ、分析サーバ３０による分析のために全てのネットワーク接続イベントを収集する。エージェント１０は、作業負荷を軽減し、プライバシを維持するために軽いソフトウェアであってもよく、その場合、エージェント１０は、ネットワーク接続のコンテンツ及びトラヒックサイズに関する情報を収集しない。典型的なネットワークイベントｅは、７タプルとして以下の情報を含む。すなわち、ネットワークイベントｅは、ｅ＝＜ｓｒｃ−ｉｐ，ｓｒｃ−ｐｏｒｔ，ｄｓｔ−ｉｐ，ｄｓｔ−ｐｏｒｔ，ｃｏｎｎｅｃｔｉｎｇ−ｐｒｏｃｅｓｓ，ｐｒｏｔｏｃｏｌ−ｎｕｍ，ｔｉｍｅｓｔａｍｐ＞を含む。用語ｓｒｃ−ｉｐ及びｓｒｃ−ｐｏｒｔは、ネットワークイベントのための送信元ホストのＩＰアドレス及びポートを示し、用語ｄｓｔ−ｉｐ及びｄｓｔ−ｐｏｒｔは、宛先ホストのＩＰアドレス及びポートを示し、ｃｏｎｎｅｃｔｉｎｇ−ｐｒｏｃｅｓｓは、接続を初期化するプロセスであり、ｐｒｏｔｏｃｏｌ−ｎｕｍは、接続のプロトコルを示し、ｔｉｍｅｓｔａｍｐは、接続時間を記録する。
【００３１】
表１は、２０１６年２月２９日の１１：３０ＡＭで始まり、１２：０５ＰＭで終わる期間のネットワークイベントサンプルの典型的なリストを示している。ネットワークイベントは、ｄｓｔ−ｉｐに基づいて２つのカテゴリに分類できる。ｄｓｔ−ｉｐがローカルネットワークのＩＰアドレス（例えば、１０．１５．ｘｘ．ｘｘ）の範囲内にある場合、ネットワークイベントは該ネットワークの２つのホスト間の内部接続と考えられる。ｄｓｔ−ｉｐがネットワークの範囲内にない場合、ネットワークイベントは内部ホストと外部ホストとの間の外部接続と考えられる。表において、ｅ１、ｅ３、ｅ５及びｅ６は内部接続であり、ｅ２及びｅ４は外部接続である。
【表１】
2019514315.tif 000003
【００３２】
外部接続のｄｓｔ−ｉｐ値は非常に多様になることがあるが、内部接続のｄｓｔ−ｉｐ値は規則的であり、パターンに従う。例えば、同じグループに属するホストは該グループの全てのプライベートサーバに接続するが、他のグループのプライベートサーバにはほとんど接続しない。この所見に基づき、本実施形態は、ブループリントグラフ５２を用いて正常なイベント状態をモデル化する。トポロジグラフは、特にネットワーク内部における接続イベントの送信元及び宛先の関係性をモデル化するために用いられる。
【００３３】
トポロジブループリントグラフは、Ｇｔ＝＜Ｖ，Ｅ＞で定義される。ここで、Ｖは企業ネットワークの内部の複数のホストのノードセットであり、Ｅは前記ノード間の複数のエッジのセットである。ホストノードνは、ν＝＜ｈｏｓｔ−ｉｄ，ｉｐ，ｌａｓｔ−ｃｏｎｎｅｃｔｉｏｎ−ｔｉｍｅ＞の３タプルで定義され、エッジｌは、ｌ＝＜ｅｄｇｅ−ｉｄ，ｓｒｃ−ｉｐ，ｄｓｔ−ｉｐ，ｌａｓｔ−ｃｏｎｎｅｃｔｉｏｎ−ｔｉｍｅ＞の４タプルで定義される。用語ｌａｓｔ−ｃｏｎｎｅｃｔｉｏｎ−ｔｉｍｅは、ノード／エッジの最新のネットワーク接続のタイムスタンプを記録する。この測定値は、ブループリントグラフ５２を更新するために使用される。所定の期間に関して（例えば、２ヶ月）、ノード／エッジに接続イベントが無い場合、システムは、ブループリントグラフ５２を最新の状態で保持するためにそのようなノード／エッジを除去する。
【００３４】
ネットワーク内部の１対のホスト間に新しいネットワーク接続がある場合、エッジが２つのホストノード間のトポロジグラフに追加される。ノードとエッジの両方のｌａｓｔ−ｃｏｎｎｅｃｔｉｏｎ−ｔｉｍｅが、接続イベントのタイムスタンプとして更新される。トポロジグラフは、１対のノード間の接続イベントの総数を保存する必要はない。ＡＳＩエージェント１０は、ネットワーク接続のコンテンツ及びトラヒックをモニタしないため、接続の総数は意味がなく、誤解を招くことさえある。実際のアプリケーションでは、プロセスが同じエッジを介して１秒間に何千ものネットワーク接続イベントを初期化することがある。総数における大きい数値は、そのエッジに沿った高いトラヒックを示していないと思われる。
【００３５】
次に図４を参照すると、図４には、トポロジグラフを更新する方法が示されている。ブロック４０２は、複数のＡＳＩエージェント１０のうちの１つから新しいネットワーク接続イベントを受信する。ブロック４０４は、トポロジグラフが既に送信元ホストノードと宛先ホストノードの両方を含んでいるか否かを判定し、これらのノードがまだ存在しない場合、ブロック４０６は、これらのノードをトポロジグラフに追加する。ブロック４０８は、トポロジグラフが既に送信元ノードと宛先ノード間にエッジを含んでいるか否かを判定し、エッジがまだ存在しない場合、ブロック４１０は、エッジをトポロジグラフに追加する。ブロック４１２は、何らかの影響を受けたノード及びエッジの最終接続時間値（last-connection-time value）を更新し、ブロック４１３は、所定の最大存続期間を越えている、十分に古い最終接続時間を有するノードまたはエッジを除去する。ブロック４１４は、更新されたトポロジグラフを出力する。
【００３６】
この同じプロセスを使用して、最初にトポロジグラフを構築し、新しい接続イベントが到着したときに更新されたトポロジグラフを保持する。ブループリントグラフ５２は不揮発性記憶装置にセーブされていてもよく、最新のトポロジ情報を利用するために異なる分析エンジンでロードされていてもよい。例えば、ユーザは、ある企業ネットワークからブループリントグラフ５２を構築し、セーブされたブループリントグラフ５２を他の企業ネットワークにロードしてもよい。トポロジグラフは、動作中に自動で更新され、ネットワークに関する特定の情報を提供するのにユーザの介入を必要としないため、本実施形態は実際のネットワークにおける迅速な導入に使用される。
【００３７】
ネットワーク接続イベントに加えて、ＡＳＩエージェント１０は、プロセスがファイルにアクセスするとき、ソケットを開くとき、または他のプロセスに分岐するとき等のプロセスレベルイベントを収集する。プロセスレベルイベントｅは、ｅ＝＜ｈｏｓｔ−ｉｄ，ｕｓｅｒ−ｉｄ，ｐｒｏｃｅｓｓ，ｏｂｊｅｃｔ，ｔｉｍｅｓｔａｍｐ＞の５タプルである。ここで、ｈｏｓｔ−ｉｄは、エージェント１０がインストールされているホストを示し、ｕｓｅｒ−ｉｄは、プロセスを実行しているユーザを識別し、ｔｉｍｅｓｔａｍｐは、イベント時間を記録し、ｐｒｏｃｅｓｓは、イベントの主題であり、ｏｂｊｅｃｔは、イベントの対象である。対象は、例えば、ファイル、他のプロセスまたは接続情報を含むソケット等がある。プロセスレベルイベントは、対象のタイプに応じて、プロセス−ファイルイベント、プロセス−ソケットイベント及びプロセス−プロセスイベントの３つのカテゴリに分類できる。
【００３８】
表２は、ある日の時間１１：３０ＡＭと１２：０５ＰＭとの間のプロセスレベルイベントの典型的なリストを示している。ＩＰアドレスはホストの識別子として用いられる。以下では、イベントｅ１及びｅ５が、プロセス−ファイルイベントであり、ｅ３及びｅ４が、プロセス−ソケットイベントであり、ｅ２が、プロセス−プロセスイベントである。
【表２】
2019514315.tif 000004
【００３９】
プロセス及びその対象は、さらに若干のパターンに従う。例えば、あるプロセスは、特定のフォルダ内の複数のファイルのセットにアクセスするだけであり、他のプロセスは、特定の宛先のソケットに接続するだけである。この所見に基づき、プロセスグラフは企業ネットワークにおけるプロセスレベルイベントの正常状態をモデル化する。
【００４０】
プロセスブループリントグラフは、Ｇｐ＝＜Ｖ，Ｅ＞で定義される。ここで、Ｖは、ノードセットであり、Ｅは、エッジセットである。Ｖにおけるノードνは、ν＝＜ｎｏｄｅ−ｉｄ，ｔｙｐｅ，ｌａｓｔ−ｅｖｅｎｔ−ｔｉｍｅ＞の３タプルで定義され、エッジｌは、ｌ＝＜ｅｄｇｅ−ｉｄ，ｓｒｃ−ｎｏｄｅ−ｉｄ，ｄｓｔ−ｎｏｄｅ−ｉｄ，ｌａｓｔ−ｅｖｅｎｔ−ｔｉｍｅ＞の４タプルで定義される。プロセスグラフには３つのタイプのノードがあり、プロセスノード、ファイルノード及びソケットノードが含まれる。ｎｏｄｅ−ｉｄ値は、アイデンティティ情報を表す。例えば、ノードがファイルである場合、ｎｏｄｅ−ｉｄは、ファイル経路を保存する。ｌａｓｔ−ｅｖｅｎｔ−ｔｉｍｅ値は、ノード／エッジの最新のイベントのタイムスタンプを記録する。この測定値は、期限切れのノード及びエッジを除去するために使用される。プロセスグラフは、ホスト毎に構築される。エージェント１０がホストにインストールされると、エージェント１０は、ホストで生じる全てのプロセスレベルイベントを継続的に送信し、システムは、最初のイベントをそのホストから受信すると、直ぐにプロセスグラフを構築する。
【００４１】
次に図５を参照すると、図５にはプロセスグラフを構築し、更新する方法が示されている。ブロック５０２は、プロセスレベルイベントｐを受信する。ブロック５０４は、プロセスレベルイベントのホストがそれに関連するプロセスグラフＧｐを既に有しているか否かを判定する。有していない場合、ブロック５０６は、該ホストのための新しいプロセスグラフを作成する。ブロック５０８は、Ｇｐがプロセスレベルイベントで識別されるプロセスのためのノードを含んでいるか否かを判定する。含んでいない場合、ブロック５１０は、新しいプロセスノードをＧｐに追加する。ブロック５１２は、Ｇｐがプロセスの対象に関するノードを含んでいるか否かを判定する。含んでいない場合、ブロック５１４は、適切な対象ノードをＧｐに追加する。ブロック５１６は、Ｇｐがプロセスイベントに関するエッジを含んでいるか否かを判定する。含んでいない場合、ブロック５１８は、そのようなエッジをＧｐに追加する。
【００４２】
トポロジグラフＧｔ及びプロセスグラフＧｐは、共にブループリントグラフ５２を示している。これらのブループリントグラフモデルは、異常イベントを検出するためにネットワーク分析モジュール４２及びホストレベル分析モジュール４３によって使用される。加えて、ブループリントグラフ５２は、メモリ内の複数の履歴アラート候補のセットを維持するアラート結合モジュール４４のみによって使用される。履歴アラート候補は、アラート結合システムに報告されたが、信用度が低いために出力されない過去のアラートである。結合モジュール４４は、新しく報告されたアラートと履歴アラート候補の両方を入力として取り込む。
【００４３】
次に図６を参照すると、図６にはアラート結合のための方法が示されている。ブロック６０２は、グラフ情報に基づいてホスト内でクラスタリングを実行する。このステップにおいて、ブロック６０２は、個々のホストによって報告された関連するアラートをクラスタリングする。ホスト内クラスタリングは、２つのアラート間の距離測定を利用する。２つのプロセスイベントでは、ｅ１＝＜ｈ１，ｕ１，ｐ１，ｏ１，ｔ１＞及びｅ２＝＜ｈ２，ｕ２，ｐ２，ｏ２，ｔ２＞であり、ｈ１及びｈ２は、ｈｏｓｔ−ｉｄであり、ｕ１及びｕ２は、ｕｓｅｒ−ｉｄであり、ｐ１及びｐ２は、イベントのプロセスであり、ｏ１及びｏ２は、対象であり、ｔ１及びｔ２は、イベントタイムスタンプである。ｅ１とｅ２間のプロセス距離は、以下の式で定義される。ここで、ＳＰ（ｐ１→ｐ２｜Ｇｐ）は、プロセスグラフＧｐにおけるｐ１からｐ２までの最短経路である。
【数１】
2019514315.tif 000005
【００４４】
この式には以下の３つの異なる条件がある。
１．ｅ１及びｅ２が異なるホストからのものである場合、距離は無限大である。
２．ｅ１及びｅ２が同じホスト及び同じプロセスからのものである場合、距離はゼロである。
３．ｅ１及びｅ２が、同じホスト及び異なるプロセスからのものである場合、プロセス距離はｐ１からｐ２までの最短経路の長さである。
ホスト内クラスタリングの細部は、以下でより詳細に説明する。
【００４５】
ブロック６０４は、アラート間の関係性を見出す。アラートには、明白な関係性の他に隠れた関係性もある。例えば、２つのアラート間のプロセス距離は大きいが、それらのアラートが短い期間に報告された場合、あるいは両方のアラートのｕｓｅｒ−ｉｄが同じである場合、それらのアラートは関係付けてもよい。
【００４６】
アラートとして報告された２つのプロセスイベント、ｅ１＝＜ｈ１，ｕ１，ｐ１，ｏ１，ｔ１＞及びｅ２＝＜ｈ２，ｕ２，ｐ２，ｏ２，ｔ２＞に関して、ｅ１及びｅ２が以下の条件を満たす場合に限り、ｅ１とｅ２とに隠れた関係性があると定義できる。
ｈ１＝ｈ２
ｕ１＝ｕ２
｜ｔ１−ｔ２｜＜δ１
ここで、δ１は時間閾値である。このようにして、アラートのプロセスが短い期間に同じユーザによって実行された場合、隠れた関係性が同じホスト上のアラートに指定される。隠れた関係性に基づくクラスタリングのさらなる詳細は、以下で提供される。
【００４７】
実際のシナリオでは、多くの侵入またはマルウェアインシデントが、多数のホストにわたって生じる。したがって、ブロック６０６は、異なるホストからのアラートを統合するためにホスト間でクラスタリングを実行する。アラートとして報告された２つのプロセスイベント、ｅ１＝＜ｈ１，ｕ１，ｐ１，ｏ１，ｔ１＞及びｅ２＝＜ｈ２，ｕ２，ｐ２，ｏ２，ｔ２＞では、ｅ１及びｅ２は、ｈ１≠ｈ２である場合に限り、｜ｔ１−ｔ２｜＜δｔであり、トポロジＧｔにおいてｈ１とｈ２との間にエッジがあり、かつ｜ｌａｓｔ＿ｃｏｎｎｅｃｔｉｏｎ＿ｔｉｍｅ（ｌ）−ｔ１｜＜δｔまたは｜ｌａｓｔ＿ｃｏｎｎｅｃｔｉｏｎ＿ｔｉｍｅ（ｌ）−ｔ２｜＜δｔである場合、ホスト間に関係性があると規定できる。
【００４８】
ホスト間の関係性は、両方のアラートに同じｈｏｓｔ−ｉｄまたはｕｓｅｒ−ｉｄを有することを要求しない。しかしながら、そのようなアラートは短い期間に報告されるべきであり、アラートのホストはトポロジグラフに接続されているべきである。加えて、２つのホスト間のエッジの最新の接続タイムスタンプは、アラートが報告された期間で２つのホストがネットワーク接続を有するように、アラートタイムスタンプと近いものであるべきである。ホスト間の関係性についてのさらなる詳細は以下で提供される。
【００４９】
ホスト間のクラスタを生成した後、ブロック６０８は、クラスタ毎に信用度を計算する。各ホスト間のクラスタにおける全てのアラートは、ネットワーク分析モジュール４２またはホストレベル分析モジュール４３の検出器によって報告されたときに異常スコアを有している。検出器ｄｉによって報告されたアラートｅの信用度は以下で決定される。
σ（ｅ）＝ｗｉ・ｓｃｏｒｅ（ｅ）
ここで、ｗｉは、検出器ｄｉの信用度の重みであり、ｓｃｏｒｅ（ｅ）は、報告された異常スコアである。
【００５０】
検出器の重みｗｉの値の範囲は、［０，１］である。このパラメータは、フィードバックルック（feedback look）で計算される。ここで、重みは最初に全ての検出器に関して１として初期化される。ユーザが特定のアラートを「誤アラート」であると判断した場合、その事実を記録してもよい。ｗｉの重みは次のように計算される。
【数２】
2019514315.tif 000006
ここで、
【数３】
2019514315.tif 000007
は、検出器ｄｉによって報告された誤アラートの数であり、｜Ｅｉ｜は、ｄｉからのアラートの総数である。検出器の重みは、ホスト間クラスタの信用度を計算する前に更新される。
【００５１】
ホスト間クラスタの信用度の計算において、ｃは、ホスト間クラスタであると定義され、ｐは、プロセスであると定義される。ここで、ｃは、プロセスｐによる少なくとも１つのアラートを有し、ｅｐは、クラスタｃにおけるｐの代表アラートである。アラートｅｐは、ｃに他のアラートｅｉが存在しない場合、代表であると考えられる。ここで、ｅｉのプロセスもｐであり、σ（ｅｉ）＞σ（ｅ）である。それゆえ、プロセスの代表アラートは、最も高いアラート信用度をもつアラートである。クラスタの信用度は次のように定義される。
【数４】
2019514315.tif 000008
ここで、Ｐは、ｃにおける複数のアラートに関連する全てのプロセスのセットである。ホスト間クラスタの信用度は、全てのプロセスの代表アラートの信用度の合計である。したがって、多くのプロセスを含む大きいクラスタの信用度は比較的高くなる。
【００５２】
ブロック６１０は、閾値に従ってクラスタをフィルタ処理し、各クラスタの信用度スコアをその閾値と比較する。クラスタの信用度スコアが閾値を超える場合、そのアラートが報告される。
【００５３】
次に図７を参照すると、図７にはブロック６０２におけるホスト内クラスタリングのさらなる詳細が示されている。ブロック７０２は、複数の履歴アラート候補Ｅｈのセットを受信する。ブロック７０４は、期限切れ（例えば、過去に閾値時間を超えて発行された）Ｅｈからの全てのアラートを除去する。ブロック７０６は、新しいアラートｅｎｅｗ及び残りの履歴候補Ｅｈの全てを新しいセットｅに追加する。
【００５４】
ブロック７０８は、新しいセットＥからアラートｅを選択し（これはランダムに実行されてもよい）、選択したアラートｅを新しく初期化されたクラスタｃに移動させる。ループが始まると、ブロック７１０は、新しいクラスタｃの中から新しいアラートｅｉを選択する。ブロック７１２は、新しいセットＥに残っている全てのアラートｅｊをチェックし、ｄｉｓｔｐ（ｅｉ，ｅｊ）を決定する。ｄｉｓｔｐ（ｅｉ，ｅｊ）がプロセス距離閾値δ未満である場合、ブロック７１２は、ｅｊを新しいセットＥから新しいクラスタｃに移動させる。
【００５５】
ブロック７１４は、新しいクラスタｃ内の全てのアラートに訪問したか否かを判定する。訪問していない場合、処理はブロック７１０に戻り、訪問していない新しいアラートｅｉがクラスタｃから選択される。ｃ内の全てアラートに訪問した場合、処理はブロック７０８に戻り、他の新しいクラスタが初期化され、初期化アラートが新しいセットＥから新しいクラスタに移動される。このプロセスは、新しいセットＥにアラートが残っていないとブロック７１６で判定されるまで継続する。
【００５６】
次に図８を参照すると、図８には隠れた関係性に基づいてクラスタリングを実行する方法が、ブロック６０４におけるアラート間の関係性を見出す一部として示されている。ブロック８０２は、入力としてホスト内クラスタのセットを受信する。ブロック８０４は、クラスタを、入力セットから隠れた関係性を含むクラスタのセットへ移動することで処理を開始する。ブロック８０６は、移動したクラスタｃ内の全てのアラートを検討し、それらのアラートが入力セット内のいずれかのクラスタのアラートと未だ隠れた関係性を共有しているか否かを判定する。共有している場合、そのクラスタはｃと統合されて、入力セットから除去される。次に、ブロック８０８は、クラスタが入力セットに残っているか否かを判定する。残っている場合、処理はブロック８０４に戻り、新しいクラスタが、入力セットから隠れた関係性のクラスタセットに移動される。残っていない場合、隠れた関係性のクラスタセットが出力される。
【００５７】
次に図９を参照すると、図９にはブロック６０６におけるホスト間クラスタリングを実行する方法が示されている。ブロック９０２は、隠れた関係性のクラスタセットを入力として受信する。ブロック９０４は、クラスタｃを入力セットからホスト間クラスタセットに移動させる。ブロック９０６は、移動させたクラスタｃ内の全てのアラートを検討し、それらのアラートが入力セット内のいずれかのクラスタのアラートとクラスタ間の関係性を共有しているか否かを判定する。共有している場合、ブロック９０６は、そのクラスタをｃと統合し、そのクラスタを入力セットから除去する。次に、ブロック９０８は、クラスタが入力セットに残っているか否かを判定する。残っている場合、処理はブロック９０４に戻り、新しいクラスタが、入力セットからホスト間関係性のクラスタセットに移動される。残っていない場合、ホスト間の関係性のクラスタセットが出力される。
【００５８】
本明細書に記載した実施形態は、全てハードウェアで実現してもよく、全てソフトウェアで実現してもよく、ハードウェアとソフトウェアの両方の要素を含んでいてもよい。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェアでも実現可能である。
【００５９】
実施形態には、コンピュータもしくは任意の命令実行システムによって使用される、または関連して使用されるプログラムコードを提供する、コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体からアクセスできる、コンピュータプログラム製品を含んでもよい。コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体には、命令実行システム、機器、もしくは装置によって使用される、または関連して使用されるプログラムを格納、伝達、伝搬または転送する任意の機器を含んでもよい。該媒体は、磁気媒体、光学媒体、電子媒体、電磁気媒体、赤外線媒体、または半導体システム（または機器もしくは装置）、あるいは伝搬媒体であってよい。該媒体には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク及び光ディスク等のコンピュータで読み取り可能な媒体を含んでもよい。
【００６０】
各コンピュータプログラムは、汎用または特別な目的を持つプログラム可能なコンピュータで読み取ることができる、機械で読み取り可能なストレージメディアまたは装置（例えば、プログラムメモリまたは磁気ディスク）に格納される。該コンピュータプログラムは、ストレージメディアまたは装置から本明細書に記載された手順を実行するコンピュータで読み出される、該コンピュータの設定及び制御動作のためのものである。本発明のシステムには、本明細書に記載した機能を実行する、特定の及び事前に定義された方法でコンピュータに動作させるように構成されたコンピュータプログラムを含む、コンピュータで読み取り可能なストレージメディアも考慮される。
【００６１】
プログラムコードを記憶及び／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された少なくとも１つのプロセッサを備えていてもよい。このメモリ要素には、処理の実行中にバルク記憶装置からコードが検索される回数を減らすために、プログラムコードの実際の実行中に用いられるローカルメモリ、バルク記憶装置及び少なくともいくつかのプログラムコードを一時的に記憶するキャッシュメモリを備えていてもよい。入出力またはＩ／Ｏ装置（限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む）は、直接またはＩ／Ｏコントローラを介してシステムに接続されてもよい。
【００６２】
ネットワークアダプタは、データ処理システムが、プライベートネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたは遠隔プリンタもしくは記憶装置に接続されることを可能にするために、上記システムと接続されていてもよい。モデム、ケーブルモデム及びイーサネット（登録商標）カードは、現在利用可能なタイプのネットワークアダプタのほんの一握りのものである。
【００６３】
次に図１１を参照すると、図１１にはネットワーク分析システム１１００が示されている。ネットワーク分析システムは、ハードウェアプロセッサ１１０２と、メモリ１１０４とを含む。ユーザインタフェース１１００は、結合されたアラートを含むネットワークアラートをユーザが受信する、視覚の、テキストの、及び／またはオーディオのインタフェースを備える。さらに、ネットワーク分析システム１１００は、いくつかの実施形態において、ソフトウェアとして実装されてもよい、メモリ１１０４に記憶されてハードウェアプロセッサ１１０２で実行される、１つまたは複数の機能モジュールを含む。他の実施形態において、機能モジュールは、例えば、特定用途向けの集積チップまたはフィールドプログラマブルゲートアレイの形式で、１つまたは複数の個別ハードウェア構成要素として実装されていてもよい。
【００６４】
ブループリントグラフ更新モジュール１１０８は、イベントが到着したときブループリントグラフ１１０６を構築して更新する。クラスタリングモジュール１１１０は、ブループリントグラフ１１０６に基づいて、例えば、ホスト内、ホスト間及び／または隠れた関係性を有するクラスタにアラートをクラスタリングし、前記クラスタの信用度を判定する。クラスタの信用度が閾値を超えている場合、クラスタ内のアラートがユーザインタフェース１１１２を介してユーザに提供される。
【００６５】
次に図１２を参照すると、図１２にはネットワーク分析システム１１００を表すことができる、典型的な処理システム１２００が示されている。処理システム１２００は、システムバス１２０２を介して他の構成要素と動作可能に接続された、少なくとも１つのプロセッサ（ＣＰＵ）１２０４を含む。システムバス１２０２には、キャッシュ１２０６、リードオンリメモリ（ＲＯＭ）１２０８、ランダムアクセスメモリ（ＲＡＭ）１２１０、入力／出力（Ｉ／Ｏ）アダプタ１２２０、サウンドアダプタ１２３０、ネットワークアダプタ１２４０、ユーザインタフェースアダプタ１２５０及びディスプレイアダプタ１２６０が動作可能に接続されている。
【００６６】
第１の記憶装置１２２２及び第２の記憶装置１２２４は、Ｉ／Ｏアダプタ１２２０によってシステムバス１２０２に動作可能に接続されている。記憶装置１２２２及び１２２４は、ディスク記憶装置（例えば磁気ディスク記憶装置または光ディスク記憶装置）、固体磁気装置等のいずれであってもよい。記憶装置１２２２及び１２２４は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
【００６７】
スピーカ１２３２は、サウンドアダプタ１２３０によってシステムバス１２０２に動作可能に接続されている。トランシーバ１２４２は、ネットワークアダプタ１２４０によってシステムバス１２０２に動作可能に接続されている。ディスプレイ装置１２６２は、ディスプレイアダプタ１２６０によってシステムバス１２０２に動作可能に接続されている。
【００６８】
第１のユーザ入力装置１２５２、第２のユーザ入力装置１２５４及び第３のユーザ入力装置１２５６は、ユーザインタフェースアダプタ１２５０によってシステムバス１２０２に動作可能に接続されている。ユーザ入力装置１２５２、１２５４及び１２５６は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーション感知装置、マイクロホン、あるいはこれらの装置のうちの少なくとも２つの装置の機能を組み込んだ装置等のいずれであってもよい。本原理の趣旨を維持する限りにおいて、他のタイプの入力装置を使用することも可能である。ユーザ入力装置１２５２、１２５４及び１２５６は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置１２５２、１２５４及び１２５６は、システム１２００に情報を入力し、システム１２００から情報を出力するために使用される。
【００６９】
処理システム１２００は、当業者であれば容易に思いつくような他の要素（図示せず）を含んでもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システム１２００には、その詳細な実装に応じて他の様々なタイプの入力装置及び／または出力装置を含むことができる。例えば、無線及び／または有線による様々な入力装置及び／または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム１２００の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【００７０】
上記は、あらゆる観点において例示的（illustrative）かつ典型的（exemplary）であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される詳細及び特殊性と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。
【図１】
2019514315.tif 000009
【図２】
2019514315.tif 000010
【図３】
2019514315.tif 000011
【図４】
2019514315.tif 000012
【図５】
2019514315.tif 000013
【図６】
2019514315.tif 000014
【図７】
2019514315.tif 000015
【図８】
2019514315.tif 000016
【図９】
2019514315.tif 000017
【図１０】
2019514315.tif 000018
【図１１】
2019514315.tif 000019
【図１２】
2019514315.tif 000020
【国際調査報告】
2019514315.tif 000021
2019514315.tif 000022