(57)【特許請求の範囲】
【請求項１】
悪意のあるプロセスを検知するための方法であって、
コンピュータが、
システムのエンティティを表す頂点とそれぞれのシステムのエンティティ間のイベントを表す辺とを有する、各辺が２つのシステムのエンティティ間のそれぞれのイベントに対応する１つまたは複数のタイムスタンプを備えたグラフとしてシステムデータをモデル化し、
起こり得る攻撃に関連する有効な経路パターンの集合を生成し、
前記グラフ上でランダムウォークを用いて、前記グラフ及び前記有効な経路パターンに基づいて前記システムにおける１つまたは複数のイベントシーケンスを疑わしいと判定する、方法。
【請求項２】
前記システムのエンティティは、前記システムにおけるファイル、前記システムにおけるプロセス、前記システムにおけるＵＮＩＸ（登録商標）ソケット及び前記システムにおけるインターネットソケットを備える、請求項１に記載の方法。
【請求項３】
前記有効なパターンは、前記システムのエンティティタイプの特性に基づいて判定される、請求項１に記載の方法。
【請求項４】
前記有効な経路パターンは、過去の侵入攻撃に基づく経験によりセキュリティ専門家から提供される定義に基づいて判定される、請求項３に記載の方法。
【請求項５】
前記１つまたは複数のイベントシーケンスを疑わしいと判定することは、前記コンピュータが、前記グラフ内で候補経路の幅優先探索を実施することを有する、請求項１に記載の方法。
【請求項６】
前記幅優先探索は、前記辺のタイムスタンプに基づく時間順制約を備える、請求項５に記載の方法。
【請求項７】
前記１つまたは複数のイベントシーケンスが疑わしいと判定することは、前記コンピュータが、辺上の前記エンティティがそれらのエンティティに関して通常の役割から偏移していると判定することを有する、請求項１に記載の方法。
【請求項８】
エンティティがそれらのエンティティに関して前記通常の役割から偏移していると判定することは、前記コンピュータが、送信者エンティティの送信者スコア及び受信者エンティティの受信者スコアを判定することを有する、請求項７に記載の方法。
【請求項９】
１つまたは複数のイベントシーケンスを疑わしいと判定することは、前記コンピュータが、各イベントシーケンスにおける各エンティティの前記送信者スコア及び受信者スコアに基づいて異常スコアを計算することを有する、請求項８に記載の方法。
【請求項１０】
１つまたは複数のイベントシーケンスを疑わしいと判定することは、前記コンピュータが、ボックスコックスベキ変換を用いて異常スコアを正規化することを有する、請求項９に記載の方法。
【請求項１１】
悪意のあるプロセスを検知するためのシステムであって、
システムのエンティティを表す頂点とそれぞれのシステムのエンティティの間のイベントを表す辺とを有する、各辺が２つのシステムのエンティティ間のそれぞれのイベントに対応する１つまたは複数のタイムスタンプを備えたグラフとしてシステムデータをモデル化するように構成されたモデリングモジュールと、
起こり得る攻撃に関連した有効な経路パターンの集合を生成し、前記グラフ上でランダムウォークを用いて、前記グラフ及び前記有効な経路パターンに基づいて前記システムにおける１つまたは複数のイベントシーケンスを疑わしいと判定するように構成されたプロセッサを備える、悪意のあるプロセス経路発見モジュールと、
を有する、システム。
【請求項１２】
前記システムのエンティティは、前記システムにおけるファイル、前記システムにおけるプロセス、前記システムにおけるＵＮＩＸ（登録商標）ソケット及び前記システムにおけるインターネットソケットを備える、請求項１１に記載のシステム。
【請求項１３】
前記悪意のあるプロセス経路発見モジュールは、前記システムのエンティティタイプの特性に基づいて有効なパターンを判定するようにさらに構成された、請求項１１に記載のシステム。
【請求項１４】
前記悪意のあるプロセス経路発見モジュールは、過去の侵入攻撃に基づく経験によりセキュリティ専門家から提供される定義に基づいて有効な経路パターンを判定するようにさらに構成された、請求項１３に記載のシステム。
【請求項１５】
前記悪意のあるプロセス経路発見モジュールは、前記グラフ内で候補経路の幅優先探索を実施するようにさらに構成された、請求項１１に記載のシステム。
【請求項１６】
前記幅優先探索は、前記辺のタイムスタンプに基づく時間順制約を備える、請求項１５に記載のシステム。
【請求項１７】
前記悪意のあるプロセス経路発見モジュールは、辺上の前記エンティティがそれらのエンティティに関して通常の役割から偏移しているか否かを判定するようにさらに構成された、請求項１１に記載のシステム。
【請求項１８】
前記悪意のあるプロセス経路発見モジュールは、送信者エンティティの送信者スコアと受信者エンティティの受信者スコアとを判定するようにさらに構成された、請求項１７に記載のシステム。
【請求項１９】
前記悪意のあるプロセス経路発見モジュールは、各イベントシーケンスにおける各エンティティの前記送信者スコア及び受信者スコアに基づいて異常スコアを計算するようにさらに構成された、請求項１８に記載のシステム。
【請求項２０】
前記悪意のあるプロセス経路発見モジュールは、ボックスコックスベキ変換を用いて異常スコアを正規化するようにさらに構成された、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１５年４月１６日に出願された米国特許出願第６２／１４８２３２号を基礎とした優先権を主張する、２０１６年４月１４日に出願された米国特許一部継続出願第１５／０９８８６１号である。さらに、この出願は、２０１５年７月２４日に出願された米国特許出願第６２／１９６４０４号、並びに２０１６年７月１１日に出願された米国特許出願第６２／３６０５７２号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０００２】
本発明は、コンピュータ及び情報セキュリティに関し、特に大規模なプロセストレースによるホストレベルの侵入検知に関する。
【背景技術】
【０００３】
企業向けネットワークは、企業における極めて需要なシステムであり、ミッションクリティカルな情報の大部分を扱う。そのような重要性のために、これらのネットワークはしばしば攻撃の対象となる。侵入検知システムは、コンピュータのネットワークにおける情報セキュリティを確保するため、ネットワーク全体の稼働状態を監視し、起こり得る攻撃または悪意のある行動と関連するシナリオを特定する必要がある。
【０００４】
ホストレベルにおいて、検知システムは、特定のホストまたはマシン上のプロセス／プログラムイベントに関して豊富な情報を収集する（例えば、プログラムがファイルを開くとき）。この情報は、侵入検知システムが的確に侵入動作を監視できるようにするが、シグネチャベースの検知技法は新たな脅威を検知できなくなり、アノマリベースの検知技法は、単一の異常プロセスの検知に集中するか、または純正常イベント（purely normal events）と共に訓練データから構築されるオフラインモデルが必要になる。
【０００５】
何より、侵入検知システムは、与えられたシステムがどのような状態にあるかを判定するには、様々なシステムイベントの、独立した動作ではなく、同時に発生したまたは一連の動作に依存することが多い。一般的に、このシステム監視データは、正確なタイムスタンプを備える低レベルプロセスイベント、またはプロセス、ファイル及びソケット（例えば、プログラムがファイルを開くとき、またはサーバに接続するとき）等の様々なシステムエンティティ間のインタラクション（interactions）から構成されるが、侵入の企ては、通常、複数の異なるプロセスイベントが関係する、より高いレベルの行動である。例えば、持続的標的型攻撃（ＡＰＴ：Advanced Persistent Threat）と呼ばれるネットワーク攻撃は、ステルシー（stealthy）で継続するコンピュータハッキングプロセスの集合（set）で構成される。ＡＰＴは、まず環境において足掛かりを得ることを企てる。続いて、ＡＰＴは、ウィルスに感染しているシステムをターゲットのネットワークに対するアクセスに用いて攻撃目的を実現するのに役立つ追加のツールを配備する。プロセスイベントのレベルと侵入行動のレベルとの間に存在するギャップは、特にそれらの間で発生する大量の「ノイズの多い」プロセスイベントがあることを考慮すると、どのプロセスイベントが実際に悪意のある行動に関係しているかを推論するのを困難にする。したがって、個々の疑わしいプロセスイベントを判別する従来の攻撃検知技法は、このシナリオに対処するには不十分である。
【発明の概要】
【０００６】
悪意のあるプロセスを検知するための方法は、システムエンティティを表す頂点とそれぞれのシステムエンティティ間のイベントを表す辺（edge）とを有するグラフとしてシステムデータをモデル化することを含む。各辺は、２つのシステムエンティティ間のそれぞれのイベントに対応する１つまたは複数のタイムスタンプを備える。起こり得る攻撃に関連する有効な経路パターンの集合が生成される。システムにおける１つまたは複数のイベントシーケンスは、グラフ上でランダムウォークを用いて、グラフ及び有効な経路パターンに基づいて疑わしいと判定される。
【０００７】
悪意のあるプロセスを検知するためのシステムは、システムエンティティを表す頂点とそれぞれのシステムエンティティ間のイベントを表す辺とを有するグラフとしてシステムデータをモデル化するように構成されたモデリングモジュールを含む。各辺は、２つのシステムエンティティ間のそれぞれのイベントに対応する１つまたは複数のタイムスタンプを含む。悪意のあるプロセス経路発見モジュールは、起こり得る攻撃に関連する有効な経路パターンの集合を生成し、グラフ上でランダムウォークを用いて、グラフ及び有効な経路パターンに基づいてシステムにおける１つまたは複数のイベントシーケンスを疑わしいと判定するように構成されたプロセッサを含む。
【０００８】
本発明のこれら及び他の特徴並びに利点は、当業者にとって以下の詳細な説明及び添付の図面を参照することで明らかになるであろう。
【図面の簡単な説明】
【０００９】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【００１０】
【図１】図１は、本原理による、ノードのコミュニティ及び役割を表すネットワークグラフの図である。
【００１１】
【図２】図２は、本原理による、コミュニティ及び役割のメンバーシップを発見し、異常を検知する方法のブロック／流れ図である。
【００１２】
【図３】図３は、本原理による、ホストレベル分析モジュールのブロック図である。
【００１３】
【図４】図４は、本原理による、疑わしいホストレベルイベントシーケンスを検知するための方法のブロック／流れ図である。
【００１４】
【図５】図５は、本原理による、疑わしいホストレベルイベントシーケンスを検知するための疑似コードのセグメントである。
【００１５】
【図６】図６は、本原理による、処理システムのブロック図である。
【発明を実施するための形態】
【００１６】
本原理によれば、本実施形態は、侵入行動に関係する異常プロセス経路を検知することで、悪意のあるプロセス経路の発見を提供する。これは、プロセストレースを用いることで達成される。有効なシーケンスパターンの集合が生成され、ランダムウォークベースのプロセスが、システム機能を学習して疑わしいプロセスシーケンスを発見するために用いられる。経路長からスコアバイアスを除去するため、ボックスコックスベキ変換（Box-Cox power transformation）がプロセスシーケンスの異常スコアを正規化するために適用される。
【００１７】
そのため、本実施形態は、攻撃が起きた後、攻撃者の行動トレース（すなわち、プロセス経路）の完全な痕跡（complete evidence）を提供する。さらに、本実施形態は、悪意のあるプロセス経路をより正確に検知し、より少ない時間で、かつより少ない計算の複雑性で誤検知数及び検知漏れ数を低減する。記憶負荷を低減するためにコンパクトなグラフ構造を用いてもよく、検索空間を低減するために有効なシーケンスパターンの集合を生成して用いてもよく、計算コストを低減するためにランダムウォーク方式を用いてもよい。さらに、本実施形態は、訓練データを必要としないため、新たな攻撃を検知できる。
【００１８】
次に、同じ数字が同一または同様の要素を表す図面、まず図１を詳細に参照すると、図１には自動セキュリティインテリジェンスシステム（ＡＳＩ：Automatic Security Intelligence）アーキテクチャが示されている。ＡＳＩシステムは、３つの主要な構成要素を含む。すなわち、動作データを収集するために企業ネットワークの各マシンにエージェント１０がインストールされ、バックエンドサーバ２００がエージェント１０からデータを受信し、該データを前処理し、該前処理したデータを分析サーバ３０に送信し、分析サーバ３０がセキュリティアプリケーションプログラムを実行して該データを分析する。
【００１９】
各エージェント１０は、エージェントマネージャ１１、エージェントアップデータ１２及びエージェントデータ１３を含み、エージェントデータ１３は、アクティブプロセス、ファイルアクセス、ネットソケット、１サイクル当たりの命令数及びホスト情報に関する情報を含んでもよい。バックエンドサーバ２０は、エージェントアップデータサーバ２１及び監視データ記憶装置を含む。分析サーバ３０は、侵入検知３１、セキュリティポリシーコンプライアンス評価３２、インシデントバックトラック及びシステム復旧３３、並びに集中脅威検索及びクエリ３４を含む。
【００２０】
次に図２を参照すると、図２には侵入検知３１に関するさらなる細部が示されている。侵入検知エンジンには５つのモジュールがある。すなわち、侵入検知エンジンは、バックエンドサーバ２０からデータを受信し、対応するデータをネットワークレベルモジュール４２及びホストレベルモジュール４３に分配するデータ分配器４１と、ネットワーク通信（ＴＣＰ及びＵＤＰを含む）を処理し、異常通信イベントを検知するネットワーク分析モジュール４２と、ユーザ対プロセスイベント、プロセス対ファイルイベント及びユーザ対レジストリイベントを含む、ホストレベルイベントを処理するホストレベル分析モジュール４３と、ネットワークレベル異常とホストレベル異常を統合し、それらの結果を信頼できる侵入イベントにリファイン（refine）する異常融合モジュール４４と、検知結果をエンドユーザに出力する可視化モジュール４５とを有する。
【００２１】
次に図３を参照すると、図３にはホストレベル分析モジュール４３に関するさらなる細部が示されている。ホストレベル分析モジュール４３は、ハードウェアプロセッサ３１２及びメモリ３１４を含む。さらに、ホストレベル分析モジュール４３は、一実施形態において、メモリ３１４に記憶されてハードウェアプロセッサ３１２で実行される、１つまたは複数の機能モジュールを含む。代替の実施形態において、機能モジュールは、例えば、特定用途向けの集積チップまたはフィールドプログラマブルゲートアレイの形式で、１つまたは複数の個別ハードウェア構成要素として実装されていてもよい。
【００２２】
ホストレベル分析モジュール４３は、複数の異なる分析及び検知機能を含む。プロセス対ファイル異常検知モジュール３０２は、データ分配器４１からホストレベルプロセス対ファイルイベントを入力として受け取り、異常プロセス対ファイルイベントを発見する。これらのイベントには、例えば、ファイルに対する読出しまたは書込みを含んでもよい。ユーザ対プロセス異常検知モジュール３０４は、全てのストリーミングプロセスイベントをデータ分配器４１から入力として受け取り、各ユーザの行動をプロセスレベルでモデル化し、各ユーザで実行された疑わしいプロセスを識別する。ＵＳＢイベント異常検知モジュール３０６は、ストリーミングプロセスイベントを検討し、異常な装置の動作を検知するために全てのＵＳＢ装置関連イベントを特定する。プロセスシグネチャー異常検知モジュール３０８は、データ分配器４１からプロセス名及びシグネチャーを入力として受け取り、疑わしいシグネチャーを有するプロセスを検知する。最後に、悪意のあるプロセス経路発見モジュール３１０は、データ分配器４１から現在のアクティブプロセスを開始点として受け取り、時間ウィンドウにおける入力イベントと先のイベントとを組み合わせることで危険性を有する全てのプロセス経路を監視する。悪意のあるプロセス経路発見モジュール３１０は、以下でより詳細に記載するように異常プロセスシーケンス／経路を検知する。
【００２３】
次に図４を参照すると、図４には悪意のあるプロセス経路検知の方法が示されている。入力としてブループリントグラフが用いられる。ブループリントグラフは、ネットワークにおける通信のヒストリカルデータ集合から構成されるヘテロジーニアスグラフであり、ブループリントグラフの各ノードは企業ネットワークの物理的装置を表し、各辺はノード間の通常の通信パターンを示す。ブロック４０２は、システムエンティティ間の複雑なインタラクションを非巡回の多部グラフ（multipartite graph）としてキャプチャする、コンパクトなグラフ構造を用いたグラフモデリングを実行する。ブロック４０４は、その後、最大シーケンス長に基づいて有効なシーケンスパターンの集合を生成する。最大シーケンス長は、ユーザが設定してもよく、最適な値を自動的に決定してもよい。有効なシーケンスパターンを形成することで、グラフのサーチ空間サイズが著しく低減する。
【００２４】
次に、ブロック４０６は、グラフを走査してパターンと一致する候補イベントシーケンスを判定する。「パターン」は、システムエンティティタイプの順序集合を表すが、「シーケンス」は具体的なシステムエンティティの順序集合を表す。したがって、シーケンスは、システムエンティティの各タイプの順序がパターンに合致する場合、該パターンと一致する。シーケンスは、本明細書では「経路」とも称す。
【００２５】
ブロック４０８は、あらゆるエンティティの特性を抽出するためにランダムウォークを適用する。発見されたエンティティの特性に基づいて、ブロック４０８は、各候補プロセスの異常スコアを計算し、プロセスがどのように異常であるかを診断する。長さが異なる複数の異なるシーケンスパターンがあり、長さが異なる２つの経路のスコアは直接比較できないため、各シーケンスパターンの異常スコア分布は、例えばボックスコックスベキ変換を用いて、ブロック４１０にて単一分布（single distribution）に変換される。ブロック４１０は、疑わしいシーケンスと通常のシーケンスとの偏差を測定し、閾値よりも高い偏差を有するシーケンスを報告する。
【００２６】
攻撃行動には、しばしば複数のシステムエンティティ（例えば、プロセス、ファイル、ソケット等）が関与する。したがって、本実施形態では、複数の異なるシステムエンティティ間のインタラクションを組み込む。
【００２７】
システム監視によって提供される情報量は極めて大きいことがあり、メモリに対する該情報の直接的な記憶及びアクセスの実現を困難にする。しかしながら、情報は高い冗長性を有する。各イベントのレコードには、関連するエンティティだけでなく、それらのエンティティの属性を含むため、属性において冗長性を最初に見出すことができる。各イベントに関して属性を繰り返し記憶することは冗長である。第二に、同じエンティティで起きるイベントを繰り返しセーブし、それらの間でタイムスタンプだけを変えるのは冗長である。第三に、侵入攻撃の検知に無関係であるレコードの保存は不必要である。
【００２８】
したがって、グラフモデルは、有意な情報を圧縮して監視データから取り込むことでブロック４０２によって生成される。グラフモデルは、有向グラフＧ＝（Ｖ，Ｅ，Ｔ）で表される。ここで、Ｔはタイムスタンプの集合（set）であり、Ｅ⊂Ｖ×Ｖ×Ｔは辺の集合であり、Ｖ＝Ｆ∪Ｐ∪Ｕ∪Ｓは頂点の集合である。Ｆはコンピュータシステムに常駐するファイルの集合であり、Ｐはプロセスの集合であり、ＵはＵＮＩＸ（登録商標）ソケットの集合であり、Ｓはインターネットソケットの集合である。Ｅにおける具体的な辺（ｖｉ，ｖｊ）に関して、Ｔ（ｖｉ，ｖｊ）は、辺上のタイムスタンプの集合を表す。各イベントｅに対応する辺が既にＧに存在する場合、タイムスタンプｔが辺のタイムスタンプに追加される。そうでない場合、ブロック４０２は、タイムスタンプの集合Ｔ（ｖｉ，ｖｊ）＝｛ｔ｝を含むＧにそのような辺を構築する。この構造において、固有のエンティティの属性値が一度だけ保存される。長さｌの各イベントシーケンスについて、ｌ個の辺から成る、Ｇを通る対応する経路がある。
【００２９】
最も疑わしい経路をグラフＧから抽出する自然な方式は、既存の全ての経路を調査することである。しかしながら、密に接続されたグラフから考えられる全ての経路を列挙することは非現実的である。ブロック４０６における候補検索にガイダンスを提供するため、ブロック４０４は、有効な経路パターンＢの集合を生成する。有効な経路パターンと一致する経路だけが、起こり得る攻撃に関連しており、他は廃棄してもよい。
【００３０】
長さｌから成る各経路パターンＢは、ｌ個のエンティティ及び／またはエンティティタイプを含む。そのため、経路パターンＢは、特有のエンティティ（例えば、特定のファイル）だけでなく、同じ経路におけるエンティティタイプの一般的名称の両方を含んでいてもよい。Ｂと一致するＧにおいて少なくとも経路ｐが存在する場合にのみ、Ｂは有効な経路パターンと判定される。ｌが小さな数となる可能性があることを考慮すると、考えられる全ての経路を列挙することが可能である。グラフＧを検索することで、有効な全てのパターンの抽出を可能にする。
【００３１】
有効な経路パターンＢは、例えば、過去の侵入検知攻撃による専門家の経験を用いて、該専門家によって生成されてもよい。しかしながら、有効な経路パターンの正確かつ完全な集合をそのような専門家から得ることは困難である可能性がある。そのため、経路パターンは自動的に生成してもよい。各エンティティは、具体的なシステムエンティティタイプとして設定される。情報漏洩に対応する全ての経路では、ファイルエンティティ（Ｆ）から開始し、インターネットソケットエンティティ（Ｉ）で終了しなければならない。経路ｐ∈Ｇ及びＧの経路パターンＢが与えられると、ｐ［ｉ］及びＢ［ｉ］は、それぞれｐ及びＢにおけるｉ番目のノードを表す。したがって、ｐ及びＢが同じ長さを有し、各ｌに関してｐ［ｉ］∈Ｂ［ｉ］である（すなわち具体的なエンティティｐ［ｉ］がエンティティタイプＢ［ｉ］に属する）場合、経路ｐはＢと一致し、
【数１】
0006557774.tif 000002
で示される。そして、
【数２】
0006557774.tif 000003
であるようなＧにおいて、少なくとも１つの経路ｐが存在する場合、Ｂは有効な経路パターンである。上記の制約に続く一例において、上記の４つのエンティティタイプ、すなわち｛Ｆ，Ｆ，ｌ｝、｛Ｆ，Ｐ，ｌ｝、｛Ｆ，Ｕ，ｌ｝及び｛Ｆ，Ｉ，ｌ｝を用いた長さ３から成る４つの可能性がある経路パターンがある。何故なら、プロセスノードだけがファイルノードをインターネットソケットノードに接続できるからである。このようにして、Ｇにおける有効な全てのパターンを発見できる。
【００３２】
生成された有効な経路パターンＢに基づいて、ブロック４０６は、多部グラフにおいて、該パターンを満たす経路を探索する。イベントシーケンスｓｅｑ＝｛ｅ１，ｅ２，．．．，ｅｒ）が与えられると、グラフＧには等価経路ｐ＝｛ｖｌ，ｖ２，．．．，ｖｒ＋１｝がなければならない。イベントは時間の順に起きるため、時間順制約（time order constraint）が候補経路の探索に適用される。経路パターン及び時間順制約を幅優先探索（breadth first search）に適用することで、Ｇのワンタイムス走査で候補経路を発見することができる。候補経路Ｃは、
【数３】
0006557774.tif 000004
で定義される。
【００３３】
経路パターン及び時間順制約に基づくフィルタリングポリシーを用いても、グラフＧには依然として多数の候補経路が残る可能性があり、そのほとんどは通常動作に関連する。したがって、本実施形態では、候補経路のより大きな集合から疑わしい経路を抽出する。
【００３４】
経路において、関連するエンティティがそれらの通常の役割と異なる動きをする場合、ブロック４０８によって候補経路が疑わしいと判定される。コンピュータシステムにおいて、情報送信者及び受信者は、エンティティの役割として判別される。送信者及び受信者スコアは、通常動作のプロファイルを設定するために使用されるため、そのコンピュータシステムから正確に分かるはずである。このことを達成するため、ランダムウォークがグラフＧに適用される。Ｇから、Ｎ×Ｎ正方遷移行列Ａは、
【数４】
0006557774.tif 000005
で計算される。ここで、Ｎはエンティティの総数であり、Ｔ（ｖｉ，ｖｊ）はｖｉとｖｊとの間でこれまでに発生したイベントのタイムスタンプの集合である。Ａ［ｉ］［ｊ］は、Ｇにおいてｖｉからｖｊへ情報が流れる確率を意味する。
【００３５】
Ａは、多部グラフＧの行列表現であるため、
【数５】
0006557774.tif 000006
で表すこともできる。ここで、ゼロはゼロ部分行列を示し、矢印演算子は情報が流れる方向を示す。例えば、Ｐ→Ｆは、プロセスからファイルに対する情報の流れを示している。プロセス間インタラクションはインタラクションフローを備えていないため、Ａの非ゼロ部分行列はプロセスとファイルとの間及びプロセスとソケットとの間のみに現れ、それぞれのプロセス間には現れないことに留意されたい。これらはＵＮＩＸ（登録商標）システムによって設定される制約である。
【００３６】
Ｘを送信者スコアベクトルとし、Ｘ［ｉ］がｖｉの送信者スコアを示し、Ｙが受信者スコアベクトルとすると、初期ベクトルＸ０及びＹ０がランダムに生成され、ｍが現在の反復回数を引用する場合、各エンティティの送信者及び受信者スコアは、
【数６】
0006557774.tif 000007
で示すように繰り返し生成できる。概説するならば、高い受信者スコアを有する、多数のエンティティへ情報を送信するエンティティは、それ自体が重要な情報送信者であり、高い送信者スコアを有する、多数のエンティティから情報を受信するエンティティは、重要な情報受信者である。したがって、エンティティの送信者及び受信者スコアは、エンティティに関連する受信者及び送信者スコアを蓄積することで反復計算される。例えば、ＵＮＩＸ（登録商標）システム上のｆｉｌｅ／ｅｔｃ／ｐａｓｓｗｄは、アクセス許可をチェックするために多くのプロセスに送信されるため、高い送信者スコア及び低い受信者スコアを有するが、めったに変更されることはない。
【００３７】
この反復改良の結果では、学習したスコア値が初期スコア値に依存する。しかしながら、初期スコア値の影響は、行列の定常状態特性を用いて除去できる。一般正方行列Ｍ及び一般ベクトルπが与えられると、一般ベクトルπは、
【数７】
0006557774.tif 000008
で示すように繰り返し更新できる。十分に大きなｍの値に対してπｍ＋１≒πｍであるような収束状態は起こり得る。この場合、収束状態に到達できる１つの固有の値がある。
【数８】
0006557774.tif 000009
収束状態は、収束されたベクトルが行列Ｍのみに依存するが、初期ベクトル値π０からは独立した特性を有する。
【００３８】
収束状態に到達するには、行列Ｍは、既約性と非周期性という２つの条件を満たす必要がある。グラフＧは、任意の２つのノードに対して、それらの間に少なくとも１つの経路が存在する時かつそのときに限り既約である。ノードの周期は、ノードからそれ自体に戻る最小経路長であり、グラフの周期は、全てのノード周期値の最大公約数である。グラフＧは、それが既約でありかつＧのピリオドが１である時かつそのときに限り非周期である。
【００３９】
システムグラフＧは必ずしも強く接続されていないため、上記の反復は必ずしも収束に到達しない。収束を確実にするため、各セル値が
【数９】
0006557774.tif 000010
であり、Ｎ×Ｎ正方行列である再起動行列（restart matrix）Ｒが追加される。新たな遷移行列
【数１０】
0006557774.tif 000011
は
【数１１】
0006557774.tif 000012
で定義される。ここで、ｃは０と１との間の値であり、再起動比と呼ばれる。
【数１２】
0006557774.tif 000013
は既約であり非周期であることが保証され、収束された送信者スコア及び受信者スコアベクトルをもたらす。収束率は、再起動率の値をコントロールすることで制御できる。収束を確実にするために用いるいくつかの反復に関する１つの例示的な値は約１０である。
【００４０】
送信者及び受信者スコアに基づき、経路ｐが与えられると、経路に関する異常スコアは、
Ｓｃｏｒｅ（ｐ）＝１−ＮＳ（ｐ）
【数１３】
0006557774.tif 000014
で計算される。
【００４１】
上述したように、異なる長さの経路に関する異常スコアは異なる分布を有する。したがって、異なる長さの経路の疑わしさを比較するために、異なる長さの経路を同じ条件に置き換える変換が実施される。経路異常スコアは、任意の分布を有することが可能であり、一般に通常の分布ではない。長さｒの経路の疑わしさは、
【数１４】
0006557774.tif 000015
で定義できる。ここで、Ｔは正規化関数である。
【００４２】
上位（top）ｋの疑わしい経路は、最も大きい疑わしさスコアを有するものである。数学的には、通常の分布を任意の他の分布に変える変換は実現可能であるが、その逆関数を得ることは困難である。この問題を解決するため、ボックスコックスベキ変換を正規化関数として用いる。特に、Ｑ（ｒ）を各スコアｑ∈Ｑ（ｒ）に関して長さｒの経路から計算された異常スコアの集合として示すと、
【数１５】
0006557774.tif 000016
である。ここで、λは正規化パラメータである。λに関する異なる値は異なる変換された分布を生じる。目的は、通常の分布（すなわち、Ｔ（Ｂ，λ）〜Ν（μ，σ２））に可能な限り近い正規化分布が生じるλの値を選択することである。
【００４３】
上位ｋの疑わしい経路は、通常の経路に対して十分に弁別的にならない限り、侵入攻撃に関連しているとはみなされない。疑わしい経路からの偏差を通常の経路から測定するため、経路の２つのグループ間でｔ値が計算される。通常経路は多数であるため、総和を計算することなく、相対的に小さいサイズのサンプルから期待値及び分散を計算する、モンテカルロシミュレーションに基づく効率的な解決法を用いる。
【００４４】
疑わしい経路が検知されると、ホストレベル分析モジュール４３は、異常に関する情報を提供し、１つまたは複数のアラートを含む報告を生成する。異常融合モジュール４４は、これらのホストレベルアラートを他のホスト及びネットワークレベル異常と統合し、誤った警報を自動的に除去する。結果として生じる異常のリストは、可視化モジュール４５を介してユーザに提供される。代替の実施形態において、明白な異常または異常のクラスは、例えばセキュリティ対策または緩和（mitigations）を配備することで自動的に対処してもよい。具体的な一例において、検知された異常に対する自動応答は、異常動作を示す装置を管理者が検査できるまでシャットダウンすることであってもよい。
【００４５】
次に図５を参照すると、図５には、上位ｋの疑わしい経路「ＳＰ」を発見するための疑似コードが示されている。送信者及び受信者スコアベクトルＸ及びＹは、ランダムウォークプロセスを用いて作成される。ファイルＦＸのキュー（queue）は下降（descending）Ｘにしたがってソートされ、ファイルＦＹのキューはソートされた下降Ｙである。同様に、プロセスＰＸ及びＰＹのキュー、ＵＮＩＸ（登録商標）ソケットＵＸ及びＵＹのキュー、並びにインターネットソケットＳＸ及びＳＹのキューが作成される。そして、イベントシーケンスパターン及び時間的制約が一致する経路の集合を見つけるために経路が処理される。
【００４６】
本明細書に記載した実施形態は、ハードウェアで実現してもよく、ソフトウェアで実現してもよく、ハードウェアとソフトウェアの両方の要素を含んでいてもよい。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェアでも実現可能である。
【００４７】
実施形態には、コンピュータもしくは任意の命令実行システムによって使用される、または関連して使用されるプログラムコードを提供する、コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体からアクセスできる、コンピュータプログラム製品を含んでもよい。コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体には、命令実行システム、機器、もしくは装置によって使用される、または関連して使用されるプログラムを格納、伝達、伝搬または転送する任意の機器を含んでもよい。該媒体は、磁気媒体、光学媒体、電子媒体、電磁気媒体、赤外線媒体、または半導体システム（または機器もしくは装置）、あるいは伝搬媒体であってよい。該媒体には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク及び光ディスク等のコンピュータで読み取り可能な媒体を含んでもよい。
【００４８】
各コンピュータプログラムは、汎用または特別な目的を持つプログラム可能なコンピュータで読み取ることができる、機械で読み取り可能なストレージメディアまたは装置（例えば、プログラムメモリまたは磁気ディスク）に格納される。該コンピュータプログラムは、ストレージメディアまたは装置から本明細書に記載された手順を実行するコンピュータで読み出される、該コンピュータの設定及び制御動作のためのものである。本発明のシステムには、本明細書に記載した機能を実行する、特定の及び事前に定義された方法でコンピュータに動作させるように構成されたコンピュータプログラムを含む、コンピュータで読み取り可能なストレージメディアも考慮される。
【００４９】
プログラムコードを記憶及び／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された少なくとも１つのプロセッサを備えていてもよい。このメモリ要素には、処理の実行中にバルク記憶装置からコードが検索される回数を減らすために、プログラムコードの実際の実行中に用いられるローカルメモリ、バルク記憶装置及び少なくともいくつかのプログラムコードを一時的に記憶するキャッシュメモリを備えていてもよい。入出力またはＩ／Ｏ装置（限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む）は、直接またはＩ／Ｏコントローラを介してシステムに接続されてもよい。
【００５０】
ネットワークアダプタは、データ処理システムが、プライベートネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたは遠隔プリンタもしくは記憶装置に接続されることを可能にするために、上記システムと接続されていてもよい。モデム、ケーブルモデム及びイーサネット（登録商標）カードは、現在利用可能なタイプのネットワークアダプタのほんの一握りのものである。
【００５１】
次に図６を参照すると、図６には、分析サーバ３０、侵入検知システム３１および／またはホストレベル分析モジュール４３に適用できる処理システム６００の一例が示されている。処理システム６００は、システムバス６０２を介して他の構成要素と動作可能に接続された、少なくとも１つのプロセッサ（ＣＰＵ）６０４を含む。システムバス６０２には、キャッシュ６０６、リードオンリメモリ（ＲＯＭ）６０８、ランダムアクセスメモリ（ＲＡＭ）６１０、入力／出力（Ｉ／Ｏ）アダプタ６２０、サウンドアダプタ６３０、ネットワークアダプタ６４０、ユーザインタフェースアダプタ６５０及びディスプレイアダプタ６６０が動作可能に接続されている。
【００５２】
第１の記憶装置６２２及び第２の記憶装置６２４は、Ｉ／Ｏアダプタ６２０によってシステムバス６０２と動作可能に接続されている。記憶装置６２２及び６２４は、ディスク記憶装置（例えば磁気ディスク記憶装置または光ディスク記憶装置）、固体磁気装置等のいずれであってもよい。記憶装置６２２及び６２４は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
【００５３】
スピーカ６３２は、サウンドアダプタ６３０によってシステムバス６０２と動作可能に接続されている。トランシーバ６４２は、ネットワークアダプタ６４０によってシステムバス６０２と動作可能に接続されている。ディスプレイ装置６６２は、ディスプレイアダプタ６６０によってシステムバス６０２と動作可能に接続されている。
【００５４】
第１のユーザ入力装置６５２、第２のユーザ入力装置６５４及び第３のユーザ入力装置６５６は、ユーザインタフェースアダプタ６５０によってシステムバス６０２と動作可能に接続されている。ユーザ入力装置６５２、６５４及び６５６は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーション感知装置、マイクロホン、あるいはこれらの装置のうちの少なくとも２つの装置の機能を組み込んだ装置等のいずれであってもよい。本原理の趣旨を維持する限りにおいて、他のタイプの入力装置を使用することも可能である。ユーザ入力装置６５２、６５４及び６５６は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置６５２、６５４及び６５６は、システム６００に情報を入力し、システム６００から情報を出力するために使用される。
【００５５】
処理システム６００は、当業者であれば容易に思いつくような他の要素（図示せず）を含んでもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システム６００には、その詳細な実装に応じて他の様々な入力装置及び／または出力装置を含むことができる。例えば、無線及び／または有線による様々な入力装置及び／または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム６００の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【００５６】
上記は、あらゆる観点において例示的（illustrative）かつ典型的（exemplary）であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される詳細及び特殊性と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。
【図１】
0006557774.tif 000017
【図２】
0006557774.tif 000018
【図３】
0006557774.tif 000019
【図４】
0006557774.tif 000020
【図５】
0006557774.tif 000021
【図６】
0006557774.tif 000022