(57)【要約】異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施するためのシステムおよび方法が提供される。この方法は、複数のデバイスに関連付けられた通信データおよびプロファイルデータを処理して動的グラフを決定すること（５１０）を含む。この方法は、動的グラフに基づいて、複数のデバイスによって生成されたネットワークトラフィックの時間的挙動をモデル化するための特徴を生成すること（５２０）を含む。この方法はまた、時間的挙動に基づいて、複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを定式化すること（５５０）を含む。
2021529376.tif 000002
【特許請求の範囲】
【請求項１】
異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施する方法であって、
複数のデバイスに関連付けられた通信およびプロファイルデータを処理して少なくとも１つの動的グラフを決定すること（５１０）と、
プロセッサ装置によって、前記少なくとも１つの動的グラフに基づいて、前記複数のデバイスによって生成されたネットワークトラフィックの時間的挙動をモデル化するための少なくとも１つの特徴を生成すること（５２０）と、
前記時間的挙動に基づいて、前記複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを公式化すること（５５０）とを含む、方法。
【請求項２】
前記少なくとも１つの特徴は、静的ワンホップ特徴と、動的ワンホップ特徴と、静的マルチホップ特徴と、動的マルチホップ特徴とを含むグループから選択される複数の特徴を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの特徴は複数の特徴を含み、さらに、
前記複数の特徴を連結することを含む、請求項１に記載の方法。
【請求項４】
前記静的ワンホップ特徴は、さらに、
次数ベースの特徴と、重み付けされた次数ベースの特徴と、集約された特徴との少なくとも１つを含む、請求項２に記載の方法。
【請求項５】
前記静的ワンホップ特徴は、さらに、
年ベースの比率特徴と月ベースの比率特徴との少なくとも１つを含む、請求項４に記載の方法。
【請求項６】
前記動的ワンホップ特徴は、さらに、
ｅｇｏ−ｎｅｔベースの特徴と、クラスタリング特徴と、ページランクベースの特徴と、集約された特徴とのうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項７】
前記動的ワンホップ特徴は、さらに、
次数ベースの特徴と、重み付けされた次数ベースの特徴と、集約された特徴とのうちの少なくとも１つを含む、請求項６に記載の方法。
【請求項８】
前記静的マルチホップ特徴は、さらに、
少なくとも１つの次数ベースの特徴と、少なくとも１つの重み付けされた次数ベースの特徴と、少なくとも１つの集約された特徴とのうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項９】
前記少なくとも１つの次数ベースの特徴は、さらに、
各年の月ごとのスナップショットの少なくとも１つの特徴の最大値と、各年の月ごとのスナップショットの少なくとも１つの特徴の最小値と、各年の月ごとのスナップショットの少なくとも１つの特徴の平均値と、各年の月ごとのスナップショットの少なくとも１つの特徴の分散と、各年の月ごとのスナップショットの少なくとも１つの特徴の合計値とのうちの少なくとも１つを含む、請求項８に記載の方法。
【請求項１０】
前記動的マルチホップ特徴は、さらに、
ｅｇｏ−ｎｅｔベースの特徴と、クラスタリング特徴と、ページランクベースの特徴とのうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項１１】
前記少なくとも１つの特徴に基づいて前記予測結果のリストを出力することは、さらに、
前記少なくとも１つの特徴に基づいて訓練されたモデルを用いて少なくとも１つの異常デバイスを検出することを含む、請求項１に記載の方法。
【請求項１２】
異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実行するためのコンピュータシステムであって、
メモリデバイスに動作可能に結合されたプロセッサデバイスを有し、前記プロセッサデバイスは、
複数のデバイスに関連付けられた通信およびプロファイルデータを処理して少なくとも１つの動的グラフを決定し（５１０）、
前記少なくとも１つの動的グラフに基づいて、前記複数のデバイスによって生成されたネットワークトラフィックの時間的挙動をモデル化するための少なくとも１つの特徴を生成し（５２０）、
前記時間的挙動に基づいて、前記複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを公式化する（５５０）ように構成されるコンピュータシステム。
【請求項１３】
前記少なくとも１つの特徴は、静的ワンホップ特徴と、動的ワンホップ特徴と、静的マルチホップ特徴と、動的マルチホップ特徴とを含むグループから選択された複数の特徴を含む、請求項１２に記載のシステム。
【請求項１４】
前記少なくとも１つの特徴は、複数の特徴を含み、前記プロセッサデバイスは、さらに、
前記複数の特徴を連結するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記静的ワンホップ特徴は、さらに、
次数ベースの特徴と、重み付けされた次数ベースの特徴と、集約された特徴とのうちの少なくとも１つを備える、請求項１３に記載のシステム。
【請求項１６】
前記静的ワンホップ特徴は、さらに、
年ベースの比率特徴と月ベースの比率特徴との少なくとも１つを含む、請求項１５に記載のシステム。
【請求項１７】
前記動的ワンホップ特徴は、さらに、
ｅｇｏ−ｎｅｔベースの特徴と、クラスタリング特徴と、ページランクベースの特徴と、集約された特徴とのうちの少なくとも１つを含む、請求項１３に記載のシステム。
【請求項１８】
前記動的ワンホップ特徴は、さらに、
次数ベースの特徴と、重み付けされた次数ベースの特徴と、集約された特徴とのうちの少なくとも１つを含む、請求項１７に記載のシステム。
【請求項１９】
前記少なくとも１つの特徴に基づいて前記予測結果のリストを出力するとき、前記プロセッサデバイスは、さらに、
前記少なくとも１つの特徴に基づいて、訓練されたモデルを使用して、少なくとも１つの異常デバイスを検出するように構成される、請求項１２に記載のシステム。
【請求項２０】
異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実装するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体を備え、該コンピュータプログラム製品には、プログラム命令が具現化されており、コンピュータデバイスによって実行可能なプログラム命令が、
複数のデバイスに関連付けられた通信およびプロファイルデータを処理して少なくとも１つの動的グラフを決定すること（５１０）と、
前記コンピュータデバイスによって、前記少なくとも１つの動的グラフに基づいて、前記複数のデバイスによって生成されたネットワークトラフィックの時間的挙動をモデル化するための少なくとも１つの特徴を生成すること（５２０）と、
前記時間的挙動に基づいて、前記複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを公式化すること（５５０）とを含む方法を実行させるために、コンピュータデバイスによって実行可能なコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願情報
本出願は、２０１８年９月１９日に出願された米国仮特許出願第６２／７３３，２８１号、および２０１９年９月１０日に出願された米国特許出願第１６／５６５，７４６号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
本発明は、深層学習に関し、より詳細には、所定の閾値を超えるエンティティの検出のための深層学習を適用することに関する。
関連技術の説明
【０００３】
深層学習は、人工ニューラルネットワークに基づく機械学習方法である。深層学習アーキテクチャは、コンピュータビジョン、スピーチ認識、自然言語処理、オーディオ認識、ソーシャルネットワークフィルタリング、機械翻訳、バイオインフォマティクス、ドラッグデザイン、医療画像解析、材料検査およびボードゲームプログラムなどを含む分野に適用することができる。深層学習は、教師あり、半教師あり、または教師なしでも良い。
【発明の概要】
【０００４】
本発明の一態様によれば、異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施するための方法が提供される。この方法は、複数のデバイスに関連付けられた通信およびプロファイルデータを処理して動的グラフを決定することを含む。この方法は、動的グラフに基づいて、複数のデバイスによって生成されたネットワークトラフィックの時間的挙動をモデル化するための特徴を生成することを含む。この方法はまた、時間的挙動に基づいて、複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを定式化することを含む。
【０００５】
本発明の別の態様によれば、異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施するためのシステムが提供される。システムは、メモリデバイスに動作可能に結合されたプロセッサデバイスを含む。プロセッサデバイスは、複数のデバイスに関連付けられた通信およびプロファイルデータを処理して、動的グラフを決定する。プロセッサデバイスは、動的グラフに基づいて、複数のデバイスによって生成されたネットワークトラヒックの時間的挙動をモデル化する特徴を生成する。プロセッサデバイスはまた、時間的挙動に基づいて、複数のデバイスからの異常なネットワークトラフィックのソースについての予測結果のリストを定式化する。
【０００６】
これらおよび他の特徴および利点は、添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００７】
本開示は、以下の図面を参照して、好ましい実施形態の以下の説明において詳細を提供する。
【０００８】
【図１】本発明の一実施形態によるニューラルネットワークの一般化された図である。
【０００９】
【図２】本発明の一実施形態による、人工ニューラルネットワーク（ＡＮＮ）アーキテクチャの図である。
【００１０】
【図３】本発明の一実施形態による、異常なネットワークトラフィックに対する動的グラフ分析（ＤＧＡ）を実施するシステムを示すブロック図である。
【００１１】
【図４】本発明の一実施形態による動的グラフ特徴生成器を示すブロック図である。
【００１２】
【図５】本発明の一実施形態による、静的ワンホップ特徴要素を示すブロック図である。
【００１３】
【図６】本発明の一実施形態による、動的ワンホップ特徴要素を示すブロック図である。
【００１４】
【図７】本発明の一実施形態による、静的マルチホップ特徴要素を示すブロック図である。
【００１５】
【図８】本発明の一実施形態による、動的マルチホップ特徴要素を示すブロック図である。
【００１６】
【図９】本発明の一実施形態による、異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施する方法を示す流れ図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態によれば、ネットワークトラフィックの時間的挙動を特徴付け、異常の検出を監視するために、時間グラフに基づいて特徴を自動的に生成する動的グラフ分析（ＤＧＡ）のためのシステムおよび方法が提供される。
【００１８】
一実施形態では、システムは、動的グラフマイニングモデルに基づいて動的グラフ分析エンジン（ＤＧＡＥ）を実装する。ＤＧＡＥは、複数の特徴（例えば、１５００を超える特徴）を生成することによって、時間グラフの重要な挙動をモデル化する。例示的な実施形態では、特徴は、４つのカテゴリにグループ化することができる。（１）静的なワンホップ特徴：このグループは、一連のグラフの各スナップショットにおけるノードの次数ベースの特徴を含む。（２）動的なワンホップ特徴：このグループには、連続するグラフ内のノードの動的特徴が含まれる。（３）静的なマルチホップ特徴：このグループは、一連のグラフの各スナップショット内のノードのパスとコミュニティベースの特徴を含む。（４）動的マルチホップ特徴：このグループは、連続するグラフ内の動的パスおよびコミュニティベースの特徴を含む。システムおよび方法は、非常に豊富な特徴プールを実装することができ、これは、ネットワーク化されたシステムの時間的挙動を測定および定量化するのに有益であり、ロバストな分類モデルを訓練することによって異常を検出するのに有効である。
【００１９】
本明細書に記載する実施形態は、完全にハードウェアであってもよく、完全にソフトウェアであってもよく、または、ハードウェアおよびソフトウェア要素の両方を含むものであってもよい。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアで実施される。
【００２０】
実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能なコンピュータプログラム製品を含むことができる。コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを格納、通信、伝搬、またはトランスポートする任意の装置を含むことができる。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体システム（または装置またはデバイス）、または伝搬媒体とすることができる。媒体は、半導体または固体ステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスクおよび光ディスクなどのコンピュータ読み取り可能な記憶媒体を含むことができる。
【００２１】
各コンピュータプログラムは、本明細書に記載する手順を実行するために、記憶媒体またはデバイスがコンピュータによって読み取られるときに、コンピュータの動作を構成し制御するために、汎用または特殊目的のプログラム可能コンピュータによって読み取り可能な、機械読み取り可能な記憶媒体またはデバイス（例えば、プログラムメモリまたは磁気ディスク）に実体的に記憶することができる。本発明のシステムはまた、コンピュータプログラムで構成された、コンピュータ読み取り可能な記憶媒体で実施されるものと考えることができ、その場合、構成された記憶媒体は、コンピュータを特定の所定の方法で動作させて、本明細書に記載する機能を実行させる。
【００２２】
プログラムコードを記憶および／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含んでもよい。メモリ要素は、プログラムコードの実際の実行中に採用されるローカルメモリ、バルクストレージ、および実行中にバルクストレージからコードが検索される回数を減らすために少なくとも何らかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティングデバイスなどを含むが、これらに限定されない）は、直接または介在するＩ／Ｏコントローラを介してシステムに結合され得る。
【００２３】
介在する専用ネットワークまたは公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいはリモートプリンタまたはストレージデバイスに結合できるようにするために、ネットワークアダプタをシステムに結合することもできる。モデム、ケーブルモデム、およびイーサネットカードは、現在使用可能なネットワークアダプタのタイプの一例に過ぎない。
【００２４】
次に、同一の数字が同一または類似の要素を表し、最初に図１を参照すると、ニューラルネットワークの一般化された図が示される。
【００２５】
人工ニューラルネットワーク（ＡＮＮ）は、脳のような生体神経系に刺激される情報処理システムである。ＡＮＮの重要な要素は、情報処理システムの構造であり、これは、特定の問題を解決するために並列に動作する多くの高度に相互接続された処理要素（「ニューロン」と呼ばれる）を含む。ＡＮＮはさらに、ニューロン間に存在する重みの調整を含む学習を用いて、使用中に訓練される。ＡＮＮは、そのような学習プロセスを介して、パターン認識またはデータ分類などの特定のアプリケーションのために構成される。
【００２６】
ＡＮＮは、複雑または不正確なデータから意味を導出する能力を示し、パターンを抽出し、人間または他のコンピュータベースのシステムによって検出するには複雑すぎる傾向を検出するために使用することができる。ニューラルネットワークの構造は、一般に、１つまたは複数の「隠れた」ニューロン１０４に情報を提供する入力ニューロン１０２を有する。入力ニューロン１０２と隠れニューロン１０４との間の接続１０８は重み付けされ、次に、これらの重み付けされた入力は、複数層間の重み付けされた接続１０８と共に、隠れニューロン１０４内の何らかの関数に従って隠れニューロン１０４によって処理される。隠れニューロン１０４、ならびに異なる機能を実行するニューロンの任意の数の層が存在し得る。畳み込みニューラルネットワーク、最大出力ネットワーク等のような異なるニューラルネットワーク構造も存在する。最後に、出力ニューロン１０６のセットは、隠れニューロン１０４の最後のセットからの重み付けされた入力を受け入れ、処理する。
【００２７】
これは、情報が入力ニューロン１０２から出力ニューロン１０６に伝播する「フィードフォワード」計算を表す。フィードフォワード計算が完了すると、出力は訓練データから利用可能な所望の出力と比較される。本明細書の例示的な実施形態では、トレーニングデータは、異常なネットワークトラフィックを含むネットワークトラフィックを含むことができる。訓練データに対する誤差は、「フィードバック」計算で処理され、隠れニューロン１０４および入力ニューロン１０２は、出力ニューロン１０６から後方に伝播する誤差に関する情報を受け取る。一旦、逆方向エラー伝播が完了すると、重み付けされた接続１０８が受信された誤差を考慮するように更新されて、重み付け更新が実行される。これは、単に１つの種類のＡＮＮを表す。
【００２８】
図２を参照すると、人工ニューラルネットワーク（ＡＮＮ）アーキテクチャ２００が示されている。本アーキテクチャは純粋に例示的なものであり、代わりに他のアーキテクチャまたはタイプのニューラルネットワークを使用することができることを理解されたい。本明細書で説明されるＡＮＮ実施形態は、高レベルの一般性でニューラルネットワーク計算の一般原理を示すことを意図して含まれており、いかなる形でも限定するものと解釈されるべきではない。
【００２９】
さらに、以下に記載されるニューロンの層およびそれらを接続する重みは、一般的な様式で記載され、任意の適切な程度またはタイプの相互接続性を有する任意のタイプのニューラルネットワーク層によって置き換えられ得る。例えば、層は、畳み込み層、プーリング層、完全に接続された層、ストップマックス層、または任意の他の適切なタイプのニューラルネットワーク層を含むことができる。さらに、必要に応じて層を追加または除去することができ、相互接続のより複雑な形態のために重りを省略することができる。
【００３０】
フィードフォワード動作中、１組の入力ニューロン２０２はそれぞれ、重み２０４のそれぞれの行に並列に入力信号を供給する。以下に説明するハードウェアの実施形態では、重み２０４は、重み出力が、重み２０４からそれぞれの隠れニューロン２０６に渡されて、隠れニューロン２０６への重み付けされた入力を表すように、それぞれの設定可能な値を有する。ソフトウェアの実施形態では、重み２０４は、関連する信号に対して乗算される係数値として単純に表されてもよい。各重みからの信号は列ごとに加算され、隠れニューロン２０６に流れる。
【００３１】
隠れニューロン２０６は、重み２０４の配列からの信号を使用して、何らかの計算を実行する。次に、隠れニューロン２０６は、それ自体の信号を別の重み２０４の配列に出力する。この配列は、同じ方法で、重み２０４の列が、それぞれの隠れニューロン２０６から信号を受け取り、行方向に加算し、出力ニューロン２０８に供給される重み付けされた信号出力を生成する。
【００３２】
配列および隠れニューロン２０６の追加の層を介在させることによって、任意の数のこれらの段階を実施できることを理解されたい。また、いくつかのニューロンは、配列に一定の出力を提供する定常ニューロン２０９であってもよいことに注意すべきである。定常ニューロン２０９は、入力ニューロン２０２および／または隠れニューロン２０６の間に存在することができ、フィードフォワード動作中にのみ使用される。
【００３３】
逆伝搬の間、出力ニューロン２０８は、重み２０４の配列を横切って戻る信号を提供する。出力層は、生成されたネットワーク応答を訓練データと比較し、誤差を計算する。誤差信号を誤差値に比例させることができる。この実施例では、重み２０４の行は、それぞれの出力ニューロン２０８から並列に信号を受け取り、列ごとに加算して隠れニューロン２０６に入力を提供する出力を生成する。隠れニューロン２０６は、重み付けされたフィードバック信号をそのフィードフォワード計算の導関数と結合し、フィードバック信号を重み２０４のそれぞれの列に出力する前に誤差値を記憶する。この逆伝搬は、すべての隠れニューロン２０６および入力ニューロン２０２が誤差値を記憶するまで、ネットワーク２００全体を通って進行する。
【００３４】
重み更新中、記憶された誤差値は、重み２０４の設定可能な値を更新するために使用される。このようにして、重み２０４は、ニューラルネットワーク２００をその工程における誤差に適応させるように訓練され得る。３つの動作モード、フィードフォワード、逆伝搬、および重み更新は、互いに重複しないことに留意されたい。
【００３５】
ＡＮＮ２００は、異常なネットワークトラフィックを検出するためにＤＧＡを実装するために適用することができる。ＡＮＮ ２００は、以下で図３およびシステム３００に関して説明するように、異常なネットワークトラフィックの時間的挙動を特徴付けるための特徴を抽出するためにＤＧＡを実行することができる。次いで、抽出された特徴を使用して、異常なネットワークトラフィックを検出することができる。
【００３６】
ここで図３を参照すると、例示的な実施形態による、（正常および）異常なネットワークトラフィックの時間的挙動を特徴付けるための特徴を抽出するためにＤＧＡを実装するためのシステム３００を示すブロック図が示されている。
【００３７】
システム３００は、異常なネットワークトラフィックを検出する（例えば、エンタープライズネットワーク内にて）。システム３００は、ネットワーク性能の正確な推定を可能にし、それによって、エンタープライズネットワークの効率およびおそらく成功を増加させる。場合によっては、エンタープライズネットワークは、セキュリティシステムによって定期的に（例えば、毎分）監視される何百万ものネットワーク接続を含み得る。システム３００は、システム管理者が、ネットワーク接続上で収集されたトラフィックデータを効果的に分析し、ネットワークソースの異常なユーティリティをタイムリーに報告することを可能にする（これにより、ネットワークの性能の品質を向上させる）。システム３００は、ネットワークトラフィック上の処理データの特徴を効率的に捕捉し、ネットワーク化されたシステムの性能評価を可能にするトラフィックモデルを可能にする。システム３００は、異常なネットワークトラフィックデータを特徴付け、システムログからの履歴ネットワークトラフィックデータに基づいて異常な接続および疑わしい接続の監視された検出を可能にする時間グラフベースの処理を実施する。一般に、ネットワークの履歴記録が与えられると、システム３００は、ノードが近い将来（例えば、１週間）に異常であり得るかどうかを予測する。
【００３８】
図３は、システム３００の構造を示す。システム３００は、動的グラフ分析エンジン（ＤＧＡＥ）（例えば、ＤＧＡを実行するためのコンピューティングエンジンまたはデバイス）と呼ぶことができ、入力プリプロセッサ３０５、動的グラフ特徴生成器３２０、および異常デバイス検出器３４０を含むことができる。
【００３９】
システム３００は、動的であり得る（例えば、絶えず変化する、基礎となる情報の変化に反応するなど）グラフによって、通信のフローをモデル化する。例えば、グラフにおいて、各ノードは、サーバ、例えば、デバイスとすることができ、エッジは、その終端のノードの１つから別のノードへ流れる通信を表すことができる。エッジは、その通信におけるデータ量を示す重みに関連付けることができる。例示的なグラフは、時々進展（例えば、変化）し、一連の動的グラフ３１５を形成することができる。システム３００は、異常なネットワークトラフィックの検出のためにグラフデータを使用する。システム３００は、デバイスを特徴付けるために（例えば、有効である）時間グラフ特徴を設計する。
【００４０】
入力プリプロセッサ３０５は、（例えば、データベースからの）履歴記録の入力データを処理する（前処理を実行する）。入力プリプロセッサ３０５は、不完全で重複するデータを除去することができる（そして、他の場合には、分析のためにデータを準備する（例えば、「クリーン」）。入力プリプロセッサ３０５は、動的グラフ３１５を生成するすべての有効なデータを抽出するために、識別子（ＩＤ）マッチングを実装する。グラフ３１５の各エッジは、１つの通信ノードから別の通信ノードへの相関を符号化する。入力プリプロセッサ３０５は、異なる（時間的）解像度、例えば、時間単位、日単位、週単位、月単位グラフおよび年単位グラフでグラフを生成することができる。入力プリプロセッサ３０５はまた、データの分析のために、ノードの数、エッジの数、接続された構成要素の数など、グラフ３１５に関する統計を生成することができる。
【００４１】
事前処理の後、各グラフ３１５はＧi（Ｖi，Ｅi）と表され、ここでＧiはｉ時点におけるグラフであり、ＶiはＧiにおけるノードの集合を表し、ＥiはＧiにおけるエッジの集合を表す。動的グラフ３１５は、一連のグラフＧ1、…、ＧTによって表され、ここで、Ｔは、データ内の時間点の総数である。
【００４２】
動的グラフ特徴生成器３２０は、デバイスおよびネットワークトラフィックの時間的挙動を特徴付けるために、複数の特徴（例えば、１から１５００を超える特徴）を生成することができる。一例によれば、動的グラフ特徴生成器３２０は、４つの主要な特徴グループを実装することができ、それらは、（１）静的ワンホップ特徴：このグループは、一連のグラフの各スナップショット内のノードの次数ベースの特徴を含む、（２）動的ワンホップ特徴：このグループは、連続するグラフ内のノードの動的特徴を含む、（３）静的マルチホップ特徴：このグループは、一連のグラフの各スナップショット内のノードのパスおよびコミュニティベースの特徴を含む、および（４）動的マルチホップ特徴：このグループは、連続するグラフ内の動的パスおよびコミュニティベースの特徴を含む。特徴のグループは、それぞれ、図４〜図７をそれぞれ参照して以下に説明するように、静的ワンホップ特徴（例えば、モジュール、デバイス、または要素）３２２、動的ワンホップ特徴３２４、静的マルチホップ特徴３２６、および動的マルチホップ特徴３２８によって実装することができる。
【００４３】
異常デバイス検出器３４０は、データを受信し（例えば、試験し）、静的ワンホップ特徴３２２、動的ワンホップ特徴３２４、静的マルチホップ特徴３２６、および動的マルチホップ特徴３２８によって指定／指示されるような特徴（例えば、４つのグループの特徴）を抽出する。異常デバイス検出器３４０は、例えば、図８に関して以下に説明するように、異常ネットワークトラフィックを検出するために特徴を使用してＤＧＡを適用する。
【００４４】
図４は、例示的な実施形態による、静的ワンホップ特徴３２２を示すブロック図である。
【００４５】
図４に示すように、静的ワンホップ特徴３２２は、次数ベース特徴４１０および集約された特徴４１５を含む。次数ベースの特徴４１０および集約された特徴４１５は、ネットワークトラフィックの時間的挙動の測定および定量化を可能にし、ロバストな分類モデルを訓練することによって異常なデバイスを検出するのに有効である。
【００４６】
各ノード（例えば、デバイスまたはサーバ）について、静的ワンホップ特徴３２２は、動的グラフの各スナップショットにおいて次数ベース特徴４１０を自動的に生成することができ、これは、イン次数、アウト次数、全次数、次数差分、重み付けされたイン次数、重み付けされたアウト次数、重み付けされた全次数、および重み付けされた次数差分の特徴を含むことができる。
【００４７】
イン次数（特徴）は、各ノードに関連付けられたインゴーイングのエッジの数を指す。アウト次数（特徴）は、各ノードに関連するアウトゴーイングのエッジの数を指す。全次数（特徴）は、イン次数とアウト次数との和を指す。次数差分（特徴）は、アウト次数とイン次数との差を指す。重み付けされたイン次数（特徴）は、各ノードに関連付けられたインゴーイングのエッジ上の重みの合計を指す。重み付けされたアウト次数（特徴）は、各ノードに関連するアウトゴーイングのエッジ上の重みの合計を指す。重み付けされた全次数（特徴）は、重み付けされたイン次数と重み付けされたアウト次数との和を指す。重み付けされた次数差分（特徴）は、重み付けされたアウト次数と重み付けされたイン次数との差分を指す。
【００４８】
各ノードについて、静的ワンホップ特徴３２２は、毎年の月ごとのスナップショットの各次数ベース特徴４１０の最大値を含むことができる集約された特徴４１５を自動的に生成することができる。集約された特徴４１５は、毎年の月ごとのスナップショットの各次数ベース特徴４１０の最小値を含むことができる。集約された特徴４１５は、毎年のごとのスナップショットの各次数ベース特徴４１０の平均値を含むことができる。集約された特徴４１５は、毎年の月ごとのスナップショットの各次数ベース特徴４１０の分散を含むことができる。集約された特徴４１５は、毎年の月ごとのスナップショットの各次数ベース特徴４１０の合計を含むことができる。
【００４９】
図５は、例示的な実施形態による動的ワンホップ特徴３２４を示すブロック図である。
【００５０】
各ノードについて、動的ワンホップ特徴３２４は、（例えば、自動的に）一連のグラフ内に動的次数特徴を生成することができ、これは、年ベースの比率特徴４２０および月ベースの比率特徴４２５として要約することができる。
【００５１】
年ベースの比率特徴４２０は、次年度を現在の年度で除算する（例えば、イン次数についての次年度／現在の年度）ことによって決定されるイン次数比率を含む。また、年ベースの比率特徴４２０は、次年度を現在の年度で除算する（例えば、アウト次数についての次年度／現在の年度）ことによって決定されるアウト次数比率を含む。年ベースの比率特徴４２０は、次年度を現在の年度で除算する（例えば、全次数についての次年度／現在の年度）ことによって決定される全次数比率を含む。次年度を現在の年度で除算する（例えば、次数差分についての次年度／現在の年度）ことにより、次数差分比率が決定される。年ベースの比率特徴４２０は、次年度を現在の年度で除算する（例えば、重み付けされたイン次数についての次年度／現在の年度）ことによって決定される重み付けされたイン次数比率を含む。年ベースの比率特徴４２０は、重み付けされたアウト次数比率：次年度／現在の年度を含む。年ベースの比率特徴４２０は、次年度を現在の年度で除算する（例えば、重み付けされた全次数についての次年度／現在の年度）ことによって決定される重み付けされた全次数比率をさらに含む。重み付けされた次数差分比率は、次年度を現在の年度で除算する（例えば、重み付けされた次数差分についての次年度／現在の年度）ことによって決定される。
【００５２】
月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、イン次数についての次の月／現在の月）ことによって決定されるイン次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、アウト次数についての次の月／現在の月）ことによって決定されるアウト次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、全次数比率：次の月／現在の月）ことによって決定される全次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、次数差分比率：次の月／現在の月）ことによって決定される次数差分比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、重み付けされたイン次数比率：次の月／現在の月）ことによって決定される重み付けされたイン次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、重み付けされたアウト次数比率：次の月／現在の月）ことによって決定される重み付けされたアウト次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、重み付けされた全次数比率：次の月／現在の月）ことによって決定される重み付けされた全次数比率を含む。月ベースの比率特徴４２５は、次の月を現在の月で除算する（例えば、重み付けされた次数差分比率：次の月／現在の月）ことによって決定される重み付けされた次数差分比率を含む。
【００５３】
なお、上記の特徴は、例えば半年ごとや四半期ごとなど、異なる期間に生成することもできる。
【００５４】
図６は、例示的な実施形態による、静的マルチホップ特徴３２６を示すブロック図である。
【００５５】
各ノード、例えば、デバイスについて、静的マルチホップ特徴３２６は、動的グラフの各スナップショットにおいて、マルチホップおよびコミュニティベースの特徴４３０を（例えば、自動的に）生成することができ、これらは以下のように要約される。
【００５６】
Ｅｇｏ?ｎｅｔサイズは、各ノードのｅｇｏ?ｎｅｔ（ｅｇｏネットワーク）におけるエッジの数を示す。Ｅｇｏネットワークは、フォーカルノード（「ｅｇｏ」）と、ｅｇｏが直接接続されているノード（「ａｌｔｅｒｓ」など）に加えて、変更の中にタイがあれば、それで構成される。Ｅｇｏネットワークにおける各変更は、それ自体のＥｇｏネットワークを有し、すべてのＥｇｏネットワークは、（例えば、人間の）ソーシャルネットワークを形成するように連動する。重み付けされたｅｇｏ−ｎｅｔサイズは、各ノードのｅｇｏ−ｎｅｔにおけるエッジ加重の合計である。クラスタリング係数は、各ノードのｅｇｏ?ｎｅｔ内の三角形のパーセンテージを示す。ページランクは、ノードがどのくらい重要であるかの推定値を決定するために、ノードへのパスの数および品質をカウントする。ここで、各「パス」は、複数のリンクで構成される。２つのノードが１つのリンクで接続されている場合、それらの間に１（ワン）ホップのパスがある。ノード１がノード２と接続し、ノード２がノード３と接続している場合、ノード１とノード３とは２ホップのパスで接続される。ページランク?２は、各ノードの２ホップページランクスコアを示す。ページランク?３は、各ノードの３ホップページランクスコアを示す。ページランク−収束は各ノードの収束ページランクスコアを示す。
【００５７】
静的マルチホップ特徴３２６は、（例えば、自動的に）集約された特徴４３５を生成することができる。これらは、毎年の月ごとのスナップショットのマルチホップおよびコミュニティベースの特徴４３０の各々の最大値を含む。集約された特徴４３５はまた、毎年の月ごとのスナップショットのマルチホップおよびコミュニティベースの特徴４３０のそれぞれの最小値を含む。集約された特徴４３５は、毎年の月ごとのスナップショットのマルチホップおよびコミュニティベースの特徴４３０のそれぞれの平均値を含む。集約された特徴４３５はまた、毎年の月ごとのスナップショットのマルチホップおよびコミュニティベースの特徴４３０のそれぞれの分散を含む。集約された特徴４３５はまた、毎年の月ごとのスナップショットのマルチホップおよびコミュニティベースの特徴４３０のそれぞれの合計を含む。
【００５８】
図７は、例示的な実施形態による、動的マルチホップ特徴３２８を示すブロック図である。
【００５９】
各ノード、例えば、デバイスについて、動的マルチホップ特徴３２８は、一連のグラフにおいて動的マルチホップおよびコミュニティベースの特徴を（例えば、自動的に）生成することができる。これらは、年ベースの比率特徴４４０および月ベースの比率特徴４４５を含み、これらは以下のように要約される。
【００６０】
年ベースの比率特徴４４０は、ｅｇｏ?ｎｅｔサイズ比率であるｅｇｏ?ｎｅｔサイズ比率：次年度／現在の年度（例えば、現在の年度に対する次年度のｅｇｏ?ｎｅｔサイズ）などの特徴を含む。重み付けされたｅｇｏ?ｎｅｔ比率は、次年度の重み付けされたｅｇｏ／現在の年度の重み付けされたｅｇｏの比率（例えば、現在の年度に対する次年度の重み付けされたｅｇｏ?ｎｅｔ）である。クラスタリング係数比率は、次年度／現在の年度のクラスタリング係数の比率である。ページランク−２比率は、次年度のページランク−２／現在の年度のページランク−２の比率である。ページランク−３比率は、次年度／現在の年度のページランク−３の比率である。ページランク収束比率は、次年度／現在の年度のページランク−収束の比率である。
【００６１】
月ベースの比率特徴は、翌月／当月のｅｇｏ?ｎｅｔ比率であるｅｇｏ?ｎｅｔサイズ比率などの特徴を含む。重み付けされたｅｇｏ?ｎｅｔ比率は、翌月／当月の重み付けされたｅｇｏの比率である。クラスタリング係数比率は、翌月／当月のクラスタリング係数の比率である。ページランク−２比率は、翌月／当月のページランク−２の比率である。ページランク−３比率は、翌月／当月のページランク−３の比率である。ページランク−収束比率は、翌月／当月のページランク−収束の比率である。
【００６２】
上記の年ベースの比率特徴４４０および月ベースの比率特徴４４５は、半年ごとおよび四半期ごとなど、異なる時間増分で生成することもできることに留意されたい。
【００６３】
図８は、例示的な実施形態による、異常デバイス検出器（モジュール、デバイス、または要素など）３４０を示すブロック図である。
【００６４】
図８に示すように、異常デバイス検出器３４０は、分類要素５１０と試験要素５２０とを含む。
【００６５】
分類要素５１０は、訓練データの特徴（例えば、図４〜７に関して本明細書で上述したように、４つのグループ）を受信し、各データインスタンスについてこれらの特徴を連結する。分類構成要素５１０は、次に、モデル訓練のために、訓練データを、意思決定ツリー、サポートベクトルマシン（ＳＶＭ）および／またはグレーデント昇格分類器のような分類器（例えば、システム、ニューラルネットワークまたはデバイスによって実施される分類処理）へ供給する。分類要素５１０は、試験データに基づいて異常なネットワークトラフィックを検出するために使用することができる訓練されたモデルを出力する。
【００６６】
試験要素５２０は、試験データを受信し、例えば、静的ワンホップ特徴３２２、動的ワンホップ特徴３２４、静的マルチホップ特徴３２６、および動的マルチホップ特徴３２８にて／によって指定されるような（例えば、４つのグループの）特徴を抽出する。次いで、試験要素５２０は、場合によっては、これらの特徴を連結し、異常なネットワークトラフィック検出のために分類構成要素５１０から訓練された（例えば、十分に訓練された）モデルにデータを供給する。特徴の組み合わせおよび特徴の相互作用を使用して、異常トラフィックを検出することができる。試験要素５２０は、予測結果のリストを出力することができ、一例によれば、値１は、デバイスが異常であることを示し、値０は、ノードが正常であることを示す。いくつかの実施形態では、異常の閾値は、ノードが、異常な挙動の変化する標準および／または確率（例えば、以前のより高い閾値よりも低い確率）で識別されるように調整され得る。
【００６７】
再び図３を参照すると、システム３００は、静的ワンホップ特徴３２２（図４）、動的ワンホップ特徴３２４（図５）、静的マルチホップ特徴３２６（図６）、および動的マルチホップ特徴３２８（図７）に関して本明細書で上述した方法および特徴に基づいて、異常ネットワークトラフィック検出を実施することができる。システム３００は、異常なネットワークトラフィック検出のタスクの複雑さを低減することができる。
【００６８】
システム３００は、異常なネットワークトラフィックを検出するための動的グラフに基づいて豊富な特徴を自動的に生成することができる。システム３００は、グラフデータのダイナミクスを管理（競合、勘定等）する。グラフは、時々変化することができ、システム３００は、時間ベース、日ベース、週ベース、月ベース、または年ベースなどの定期的なベースで変化を決定することができる。システム３００は、通信（またはシステムログ）の変化を分析して、これらの変化が、ネットワークトラフィックの異常が所定の目標を上回る（または上回らない）ことを反映するかどうかを判定する。システム３００は、効果的な検出のために動的変化を定量化する。
【００６９】
システム３００はまた、不均衡なデータ分布を効果的に管理（競合、勘定等）する。例示的な実施形態によれば、異常なデバイスの数は、他のデバイスの数よりもはるかに少ない（例えば、異常な挙動の最小閾値を達成しないデバイスの数によって著しく上回る）。データにおいて、分布は、共通のグループ内の異常なデバイス（またはネットワークトラフィックのソース）の小さなパーセンテージ（例えば、約２％、５％、１０％など）で高度にバイアスされ得、したがって、システム３００は、不均衡な分類として異常なネットワークトラフィック検出を実装する。システム３００は、大きなグループ（例えば、大きなグラフ）の中からデバイスの小さな部分を正確に見つけることができる。
【００７０】
システム３００はまた、不完全なデータを効果的に管理（競合、勘定等）する。したがって、システム３００は、比較的小さいものを含むネットワークトラフィックソースからの通信についての部分的なビューに基づいて、異常なネットワークトラフィック検出を実施することができる。
【００７１】
システム３００はまた、大きな（例えば、大きい）データサイズを効率的に管理（競合、勘定等）する。実施形態例では、グラフは、大きな複数（例えば、数百万）のノードおよび（例えば、数十億）のエッジを有することができる。さらに、発展は、経時的に変化する複数（例えば、数十、数百等）のそのようなグラフを生成することができる。システム３００は、例えば、数万ノード（分単位）のような大きなデータセットについて、特徴を導出し、検出を効率的に実行することができる。
【００７２】
システム３００はまた、大きな候補プールを効果的に管理（競合、勘定等）する。システム３００は、大きな候補プールを形成する特定のタイプの異常なネットワークトラフィックを見つけることに向けることができる。候補プールは、多くの（例えば、数百万の）デバイスを含むことができ、その多く（例えば、大部分）は、不完全なデータ問題を有する。システム３００は、大きな候補プールに対して許容可能な程度の確実性で正確に検出を実行することができる。
【００７３】
システム３００はまた、結果の効果的な解釈を可能にする。結果は、システム管理者が効果的に結果を分析できる形式で表示できる。結果は、分類のための基準（例えば、最小予想異常挙動）およびエンドユーザに容易に理解可能な確実性の程度と共に提示することができる。
【００７４】
システム３００は、個々の通信では利用できないが、デバイスからの（例えば、集約された）ネットワークトラフィックで利用可能な隠れた時間的挙動を捕捉することができる。システム３００は、グラフ特徴の非常に豊富なプールを提供し、したがって、プールから最も有用なものを自動的に選択することができるロバストな分類方法を著しく容易にすることができる。システム３００は、不均衡なデータ分布に対処することができるロバストな分類方法を容易にする特徴を提供する。
【００７５】
図９は、本発明による、異常なネットワークトラフィックを検出するために動的グラフ分析（ＤＧＡ）を実施する方法５００を示す流れ図である。
【００７６】
ブロック５１０において、システム３００は、動的グラフを決定するために、複数のデバイスに関連付けられた通信およびプロファイルデータを受信し、処理する。システム３００は、データベース内の履歴記録を含むデータを受信することができる。システム３００は、不完全かつ重複したデータを除去することができる。システム３００は、動的グラフを生成するためのすべての有効なデータを抽出するために、ｉｄマッチングを実行することができる。動的グラフの各エッジは、１つの通信ノードから別の通信ノードへの相関を符号化する。
【００７７】
ブロック５２０において、システム３００は、動的グラフに基づいて異常ネットワークトラフィックの時間的挙動を特徴付ける（例えば、モデル化する）ための時間的特徴を生成する。システム３００は、異常なネットワークトラフィックの主要な時間的挙動をモデル化するために、動的グラフデータから特徴を生成することができる。例えば、システム３００は、静的ワンホップ特徴、動的ワンホップ特徴、静的マルチホップ特徴、および動的マルチホップ特徴を含む特徴のグループを生成することができる。この実施例では、グラフ特徴は、異常なネットワークトラフィックを特徴付けるために豊富な情報を相補的に提供する４つの主要なグループに属する。特徴は、個々の通信では使用できないものの、デバイスからのネットワークトラフィックで使用可能な隠れた特徴になり得る。
【００７８】
ブロック５３０において、システム３００は、特徴を連結し、デバイス（またはネットワークトラフィックのソース）を、それらの重み付けされた次数に基づいて異なるクラスにグループ化することができる。システム３００は、場合によっては、より高い次数範囲を有するクラスに対してより正確な結果を提供することができる。一般的に、高い次数範囲内でのデバイスは、よりアクティブであり、十分なデータおよびより少ない欠落情報を有し、したがって、システム３００は、低い次数範囲内でのデバイスよりも、これらのデバイス上でより良好な予測を行うことができる。システム３００は、それによって、データ内のノイズを低減し、結果の堅牢性を向上させることができる。デバイスを異なる次数の範囲にグループ化することによって、システム３００は、異なる信頼レベルを有する結果を提供することができる。高い次数範囲のグループに対しては、システム３００は、決定するのに十分な情報があるので、より正確な結果を提供することができる。低い次数範囲のグループについては、システム３００は、このグループ内の情報がより雑音の多い情報および欠落情報を含むことを示すより低い信頼度で結果を報告することができる。したがって、システム３００は、より高い次数の範囲からより低い次数の範囲でノイズを低減することができる。いくつかの実施形態では、３つ以上のグループが存在し得、グループ化は、異なる次数の範囲に基づく。
【００７９】
ブロック５４０では、システム３００は、モデル訓練のために訓練データを、意思決定ツリー、ＳＶＭ、グレードアップ分類などの分類器へ供給する。システム３００は、異常なネットワークトラフィックを検出することができるモデルを決定（および訓練）する。
【００８０】
ブロック５５０で、システム３００は、複数のデバイスからの異常なネットワークトラフィックのソースを含むことができる予測結果のリストを公式化し、出力する。例えば、例示的な実施形態では、値１は、ノードが異常であることを示し、値０は、ノードが正常であることを示す。例示的な実施形態では、結果は、異なる帯域（例えば、高度に異常であるが、正常であるが、小さな異常な挙動の兆候を示す）にさらに分類することができる。システム３００は、結果の良好な解釈を提供することができ、効率的な検出を可能にすることもできる。
【００８１】
上記は、あらゆる点において例示的かつ例示的であると理解されるべきであり、限定的ではなく、本明細書に開示される本発明の範囲は、詳細な説明から決定されるべきではなく、むしろ特許法によって許容される全範囲に従って解釈されるような特許請求の範囲から決定されるべきである。本明細書に示され、説明される実施形態は、本発明の例示にすぎず、当業者は、本発明の範囲および精神から逸脱することなく、様々な修正を実施することができることを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の特徴の組み合わせを実施することができる。このように、本発明の態様を、特許法によって要求される詳細および特殊性と共に説明してきたが、特許状によって保護されることが請求され、望まれるものは、添付の特許請求の範囲に記載されている。
【図１】
2021529376.tif 000003
【図２】
2021529376.tif 000004
【図３】
2021529376.tif 000005
【図４】
2021529376.tif 000006
【図５】
2021529376.tif 000007
【図６】
2021529376.tif 000008
【図７】
2021529376.tif 000009
【図８】
2021529376.tif 000010
【図９】
2021529376.tif 000011
【国際調査報告】
2021529376.tif 000012
2021529376.tif 000013