(57)【特許請求の範囲】
【請求項１】
コンピュータによって実施される方法であって、
主題システムにおいてユーザの挙動を表すユーザ挙動データを取得するステップであって、前記ユーザ挙動データは、前記主題システムにおいて前記ユーザによってアクセスされた1つまたは複数のリソースと、前記ユーザによってアクセスされた各リソースについて、前記リソースがいつアクセスされたのかとを示す、ステップと、
前記ユーザ挙動データからテストデータを生成するステップであって、前記テストデータは、テスト期間中、前記ユーザによってアクセスされたリソースを示す第1の表示を備える、ステップと、
前記ユーザ挙動データから訓練データを生成するステップであって、前記訓練データは、前記テスト期間の前の多数の期間の各々において、前記ユーザによってアクセスされたリソースを示すそれぞれの第2の表示を備える、ステップと、
前記訓練データから初期パスグラフを生成するステップであって、前記初期パスグラフは、前記訓練データによって表される1つまたは複数の期間中に前記主題システムにおいて前記ユーザによってアクセスされたリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記ユーザが複数のリソースにどのようにナビゲートしたのかを表す前記テストデータからテストパスグラフを生成するステップであって、前記テストパスグラフは、前記テスト期間中に前記主題システムにおいて前記ユーザによってアクセスされるリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記初期パスグラフと前記テストパスグラフとの差分を計算するステップと、
前記初期パスグラフと前記テストパスグラフとの前記差分に基づいて、前記テスト期間における前記ユーザによる前記ユーザ挙動を異常として分類するステップと
を備え、
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、
前記初期パスグラフおよび前記テストパスグラフにおけるノードによって表されるリソースに関連付けられた重みを取得するステップと、
前記初期パスグラフと前記テストパスグラフとの間の重み付けられたジャカール距離を計算するステップであって、前記重み付けられたジャカール距離は、前記初期パスグラフと前記テストパスグラフとの交差において発生するすべてのノードのための重みの総和と、前記テストパスグラフにおいて発生するすべてのノードのための重みの総和とに基づく、ステップと
を備える、方法。
【請求項２】
前記ユーザ挙動データは、各々が、ファイルシステムにおいて前記ユーザによってアクセスされたフォルダまたはファイルを表すユーザアクセス記録を備える、請求項1に記載の方法。
【請求項３】
前記初期パスグラフを生成するステップは、前記主題システムにおいて、前記ユーザの訓練データと、前記ユーザの1つまたは複数のピアの訓練データとから、前記初期パスグラフを生成するステップを備える、請求項1に記載の方法。
【請求項４】
前記訓練データによって表される前記期間中、前記ユーザと同じように、少なくともしきい値数のリソースへアクセスした1人または複数の他のユーザを前記主題システムにおいて判定するステップと、
前記主題システムにおいて、前記1人または複数の他のユーザを、前記ユーザのピアとして指定するステップとをさらに備える、請求項3に記載の方法。
【請求項５】
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、前記初期パスグラフと前記テストパスグラフとの間のジャカール距離を計算するステップを備え、前記ジャカール距離は、前記初期パスグラフと前記テストパスグラフとの間の交差ノードの濃度と、前記初期パスグラフと前記テストパスグラフとの間のノードの結合の濃度とに基づく、請求項1に記載の方法。
【請求項６】
前記主題システムにおけるフォルダのサブフォルダよりも、前記主題システムにおける前記フォルダへ、より高い重みを割り当てるステップをさらに備える、請求項1に記載の方法。
【請求項７】
前記リソースの階層における、しきい値数のレベルよりも上にある前記主題システムにおけるすべてのリソースへ同じ重みを割り当てるステップをさらに備える、請求項1に記載の方法。
【請求項８】
前記重みは、前記リソースの人気の尺度に基づく、請求項1に記載の方法。
【請求項９】
ハイブリッドグラフを生成するステップであって、前記ハイブリッドグラフは、前記システムにおけるユーザを表すユーザノードと、前記システムにおけるリソースを表すリソースノードとを備え、前記ハイブリッドグラフは、各ユーザ-リソースリンクが前記システムにおけるリソースにアクセスするそれぞれのユーザを表すユーザ-リソースリンクと、各リソース-リソースリンクが前記システムにおけるリソースの構成を表すリソース-リソースリンクとを含む、ステップと、
前記ハイブリッドグラフに従って、前記システムにおける1つまたは複数のリソースの人気の尺度を計算するステップと、
最も高い人気の尺度を有する1つまたは複数のノードを選択するステップと、
前記最も高い人気の尺度を有する前記1つまたは複数のノードの各々へのパスを、前記ユーザのための前記初期パスグラフへ追加するステップと
をさらに備える、請求項8に記載の方法。
【請求項１０】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに、
主題システムにおいてユーザの挙動を表すユーザ挙動データを取得するステップであって、前記ユーザ挙動データは、前記主題システムにおいて前記ユーザによってアクセスされた1つまたは複数のリソースと、前記ユーザによってアクセスされた各リソースについて、前記リソースがいつアクセスされたのかとを示す、ステップと、
前記ユーザ挙動データからテストデータを生成するステップであって、前記テストデータは、テスト期間中、前記ユーザによってアクセスされたリソースを示す第1の表示を備える、ステップと、
前記ユーザ挙動データから訓練データを生成するステップであって、前記訓練データは、前記テスト期間の前の多数の期間の各々において、前記ユーザによってアクセスされたリソースを示すそれぞれの第2の表示を備える、ステップと、
前記訓練データから初期パスグラフを生成するステップであって、前記初期パスグラフは、前記訓練データによって表される1つまたは複数の期間中に前記主題システムにおいて前記ユーザによってアクセスされたリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記ユーザが複数のリソースにどのようにナビゲートしたのかを表す前記テストデータからテストパスグラフを生成するステップであって、前記テストパスグラフは、前記テスト期間中に前記主題システムにおいて前記ユーザによってアクセスされるリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記初期パスグラフと前記テストパスグラフとの差分を計算するステップと、
前記初期パスグラフと前記テストパスグラフとの前記差分に基づいて、前記テスト期間における前記ユーザによる前記ユーザ挙動を異常として分類するステップと
を備え、
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、
前記初期パスグラフおよび前記テストパスグラフにおけるノードによって表されるリソースに関連付けられた重みを取得するステップと、
前記初期パスグラフと前記テストパスグラフとの間の重み付けられたジャカール距離を計算するステップであって、前記重み付けられたジャカール距離は、前記初期パスグラフと前記テストパスグラフとの交差において発生するすべてのノードのための重みの総和と、前記テストパスグラフにおいて発生するすべてのノードのための重みの総和とに基づく、ステップと
を具備する動作を実行させるように動作可能な命令を格納する1つまたは複数の格納デバイスと
を具備するシステム。
【請求項１１】
前記ユーザ挙動データは、各々が、ファイルシステムにおいて前記ユーザによってアクセスされたフォルダまたはファイルを表すユーザアクセス記録を備える、請求項10に記載のシステム。
【請求項１２】
前記初期パスグラフを生成するステップは、前記主題システムにおいて、前記ユーザの訓練データと、前記ユーザの1つまたは複数のピアの訓練データとから、前記初期パスグラフを生成するステップを備える、請求項10に記載のシステム。
【請求項１３】
前記動作は、
前記訓練データによって表される前記期間中、前記ユーザと同じように、少なくともしきい値数のリソースへアクセスした1人または複数の他のユーザを前記主題システムにおいて判定するステップと、
前記主題システムにおいて、前記1人または複数の他のユーザを、前記ユーザのピアとして指定するステップと
をさらに備える、請求項12に記載のシステム。
【請求項１４】
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、前記初期パスグラフと前記テストパスグラフとの間のジャカール距離を計算するステップを備え、前記ジャカール距離は、前記初期パスグラフと前記テストパスグラフとの間の交差ノードの濃度と、前記初期パスグラフと前記テストパスグラフとの間のノードの結合の濃度とに基づく、請求項10に記載のシステム。
【請求項１５】
前記動作は、前記主題システムにおけるフォルダのサブフォルダよりも、前記主題システムにおける前記フォルダへ、より高い重みを割り当てるステップをさらに備える、請求項10に記載のシステム。
【請求項１６】
前記動作は、前記リソースの階層における、しきい値数のレベルよりも上にある前記主題システムにおけるすべてのリソースへ同じ重みを割り当てるステップをさらに備える、請求項10に記載のシステム。
【請求項１７】
前記動作は、
ハイブリッドグラフを生成するステップであって、前記ハイブリッドグラフは、前記システムにおけるユーザを表すユーザノードと、前記システムにおけるリソースを表すリソースノードとを備え、前記ハイブリッドグラフは、各ユーザ-リソースリンクが前記システムにおけるリソースにアクセスするそれぞれのユーザを表すユーザ-リソースリンクと、各リソース-リソースリンクが前記システムにおけるリソースの構成を表すリソース-リソースリンクとを含む、ステップと、
前記ハイブリッドグラフに従って、前記システムにおける1つまたは複数のリソースの人気の尺度を計算するステップと、
最も高い人気の尺度を有する1つまたは複数のノードを選択するステップと、
前記最も高い人気の尺度を有する前記1つまたは複数のノードの各々へのパスを、前記ユーザのための前記初期パスグラフへ追加するステップと
をさらに備える、請求項10に記載のシステム。
【請求項１８】
コンピュータプログラム命令でエンコードされた1つまたは複数の非一時的コンピュータ記憶媒体であって、前記コンピュータプログラム命令は、1つまたは複数のコンピュータにより実行されると、前記1つまたは複数のコンピュータに、
主題システムにおいてユーザの挙動を表すユーザ挙動データを取得するステップであって、前記ユーザ挙動データは、前記主題システムにおいて前記ユーザによってアクセスされた1つまたは複数のリソースと、前記ユーザによってアクセスされた各リソースについて、前記リソースがいつアクセスされたのかとを示す、ステップと、
前記ユーザ挙動データからテストデータを生成するステップであって、前記テストデータは、テスト期間中、前記ユーザによってアクセスされたリソースを示す第1の表示を備える、ステップと、
前記ユーザ挙動データから訓練データを生成するステップであって、前記訓練データは、前記テスト期間の前の多数の期間の各々において、前記ユーザによってアクセスされたリソースを示すそれぞれの第2の表示を備える、ステップと、
前記訓練データから初期パスグラフを生成するステップであって、前記初期パスグラフは、前記訓練データによって表される1つまたは複数の期間中に前記主題システムにおいて前記ユーザによってアクセスされたリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記ユーザが複数のリソースにどのようにナビゲートしたのかを表す前記テストデータからテストパスグラフを生成するステップであって、前記テストパスグラフは、前記テスト期間中に前記主題システムにおいて前記ユーザによってアクセスされるリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、前記ユーザが、前記ペアの第1のノードによって表される第1のリソースへアクセスし、次に前記ペアの第2のノードによって表される第2のリソースにナビゲートしたことを表す、ステップと、
前記初期パスグラフと前記テストパスグラフとの差分を計算するステップと、
前記初期パスグラフと前記テストパスグラフとの前記差分に基づいて、前記テスト期間における前記ユーザによる前記ユーザ挙動を異常として分類するステップと
を備え、
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、
前記初期パスグラフおよび前記テストパスグラフにおけるノードによって表されるリソースに関連付けられた重みを取得するステップと、
前記初期パスグラフと前記テストパスグラフとの間の重み付けられたジャカール距離を計算するステップであって、前記重み付けられたジャカール距離は、前記初期パスグラフと前記テストパスグラフとの交差において発生するすべてのノードのための重みの総和と、前記テストパスグラフにおいて発生するすべてのノードのための重みの総和とに基づく、ステップと
を具備する動作を実行させる、非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書は、大きなデータセットにおいて、異常を検出することに関する。
【背景技術】
【０００２】
大きなデータセットにおいて異常を検出するための技術が、コンピュータネットワークセキュリティおよびヘルスケアを含む、データ処理アプリケーションの多数のエリアにおいて使用され得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
この明細書は、データ処理システムが、1つまたは複数の特定のデータ処理システムにおいて、ユーザによってアクセスされるリソースを示すデータを活用する様々な技術に従って、ユーザ挙動をどのように、異常または非異常として分類し得るのかを説明する。たとえユーザが、アクセスされたすべてのリソースへアクセスするための許可を有し得ていても、このシステムは未だに、いくつかのユーザ挙動を、疑わしいとして分類し得る。
【０００４】
一般に、この明細書において説明される主題の1つの革新的な態様は、主題システム(subject system)において、ユーザの挙動を表すユーザ挙動データを取得するステップであって、ユーザ挙動データは、主題システムにおいてユーザによってアクセスされた1つまたは複数のリソースと、ユーザによってアクセスされた各リソースについて、リソースがいつアクセスされたのかとを示す、ステップと、ユーザ挙動データからテストデータを生成するステップであって、テストデータは、テスト期間中、ユーザによってアクセスされたリソースを示す第1の表示を備える、ステップと、ユーザ挙動データから訓練データを生成するステップであって、訓練データは、テスト期間の前の多数の期間の各々について、ユーザによってアクセスされたリソースを示すそれぞれの第2の表示を備える、ステップと、訓練データから初期モデルを生成するステップであって、初期モデルは、訓練データの第1の特性的特徴を有する、ステップと、訓練データから、および、テスト期間のための第1の表示の多数のインスタンスから、再サンプリングモデルを生成するステップであって、再サンプリングモデルは、訓練データの第2の特性的特徴と、テスト期間のための第1の表示の多数のインスタンスとを有する、ステップと、訓練データの第1の特性的特徴と、訓練データの第2の特性的特徴と、テスト期間のための第1の表示の多数のインスタンスとを比較することを含む、初期モデルと再サンプリングモデルとの差分を計算するステップと、初期モデルと再サンプリングモデルとの差分に基づいて、テスト期間におけるユーザ挙動を、異常として分類するステップとからなる動作を含む方法において具体化され得る。この態様の他の実施形態は、対応するコンピュータシステム、装置、および、1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含み、これら各々は、方法の動作を実行するように構成される。このシステムがシステム上にインストールした、特定の工程または動作手段を実行するように構成されるべき1つまたは複数のコンピュータのシステムのために、工程におけるソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せは、このシステムに対して、工程または動作を実行させる。特定の工程または動作手段を実行するように構成されるべき1つまたは複数のコンピュータプログラムのために、1つまたは複数のプログラムは、データ処理装置によって実行される場合、この装置に対して、工程または動作を実行させる命令を含む。
【０００５】
先述した、および、他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を、単独で、または、組み合わせて含み得る。ユーザ挙動データは、各々が、ファイルシステムにおいてユーザによってアクセスされたフォルダまたはファイルを表すユーザアクセス記録を備える。これら動作は、訓練データのベクトルと、テストデータの同じベクトルのN個のインスタンスとを含む、第1の行列を生成するステップと、第1の行列の第1の複数の主成分を生成するために、第1の行列について、主成分分析を実行するステップと、訓練データの複数のベクトルから第2の行列を生成するステップと、第2の行列の第2の複数の主成分を生成するために、第2の行列について、主成分分析を実行するステップであって、初期モデルと再サンプリングモデルとの差分を計算するステップは、第1の複数の主成分のうちの1つまたは複数と、第2の複数の主成分との間の角度を計算するステップを備える、ステップとを含む。これら動作は、訓練データのベクトルと、テストデータの同じベクトルのN個のインスタンスとを含む、第1の行列を生成するステップと、第1の行列の第1の複数の主成分を生成するために、第1の行列について、特異値分解を実行するステップと、訓練データの複数のベクトルから第2の行列を生成するステップと、第2の行列の第2の複数の主成分を生成するために、第2の行列について、特異値分解を実行するステップであって、初期モデルと再サンプリングモデルとの差分を計算するステップは、第1の複数の主成分のうちの1つまたは複数と、第2の複数の主成分との間の角度を計算するステップを備える、ステップとを含む。
【０００６】
この明細書において説明される主題の別の革新的な態様は、複数のトピックを取得するステップであって、各トピックは、個々のユーザのユーザ挙動データにおいて頻繁に共起する複数のファイルタイプを表すデータである、ステップと、主題システムにおいてユーザの挙動を表すユーザ挙動データを取得するステップであって、ユーザ挙動データは、主題システムにおいてユーザによってアクセスされたファイルのファイルタイプと、ファイルがユーザによっていつアクセスされたのかとを示す、ステップと、ユーザ挙動データからテストデータを生成するステップであって、テストデータは、ユーザ挙動データのファイルタイプに従って、テスト期間中に、ユーザがどのトピックにアクセスしたのかを示す第1の表示を備える、ステップと、ユーザ挙動データから訓練データを生成するステップであって、訓練データは、テスト期間の前の多数の期間の各々において、ユーザがどのトピックにアクセスしたのかを示すそれぞれの第2の表示を備える、ステップと、テストデータから、初期SVDモデルを生成するステップと、テスト期間中、ユーザがどのトピックにアクセスしたのかを示す第1の表示の多数のインスタンスからの訓練データから、再サンプリングモデルを生成するステップと、初期モデルと再サンプリングモデルとの差分を計算するステップと、初期モデルと再サンプリングモデルとの差分に基づいて、テスト期間におけるユーザ挙動を異常として分類するステップとからなる動作を含む方法において具体化され得る。この態様の他の実施形態は、対応するコンピュータシステム、装置、および、1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含み、これら各々は、方法の動作を実行するように構成される。
【０００７】
先述した、および、他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を、単独で、または、組み合わせて含み得る。これら動作は、主題システムにおいて多数のユーザによってアクセスされたファイルのファイルタイプから、複数のトピックを生成するステップを含む。これら動作は、各ユーザがドキュメントになるように、および、各ユーザによってアクセスされる各ファイルタイプが、対応するドキュメントにおける用語になるように定義することを含むトピックモデリング処理を使用してトピックを生成するステップを含む。トピックモデリング処理を使用してトピックを生成するステップは、あらかじめ決定された数であるK個のトピックを生成するステップを備える。これら動作は、複数の候補値であるK回、反復するステップと、特定の候補値であるKを、あらかじめ決定された数Kとして選択するステップとを含む。
【０００８】
この明細書において説明される主題の別の革新的な態様は、主題システムにおいて、ユーザの挙動を表すユーザ挙動データを取得するステップであって、ユーザ挙動データは、主題システムにおいてユーザによってアクセスされた1つまたは複数のリソースと、ユーザによってアクセスされた各リソースについて、リソースがいつアクセスされたのかとを示す、ステップと、ユーザ挙動データからテストデータを生成するステップであって、テストデータは、テスト期間中、ユーザによってアクセスされたリソースを示す第1の表示を備える、ステップと、ユーザ挙動データから訓練データを生成するステップであって、訓練データは、テスト期間の前の多数の期間の各々において、ユーザによってアクセスされたリソースを示すそれぞれの第2の表示を備える、ステップと、訓練データから初期パスグラフを生成するステップであって、初期パスグラフは、訓練データによって表される1つまたは複数の期間中に主題システムにおいてユーザによってアクセスされたリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、ユーザが、ペアの第2のノードによって表される第2のリソースから、ペアの第1のノードによって表される第1のリソースへアクセスしたことを示す、ステップと、テストデータからテストパスグラフを生成するステップであって、テストパスグラフは、テスト期間中に主題システムにおいてユーザによってアクセスされるリソースを表すノードと、ノードの1つまたは複数のペア間のリンクとを備え、ノードの各ペア間の各リンクは、ユーザが、ペアの第2のノードによって表される第2のリソースから、ペアの第1のノードによって表される第1のリソースへアクセスしたことを表す、ステップと、初期パスグラフとテストパスグラフとの差分を計算するステップと、初期パスグラフとテストパスグラフとの差分に基づいて、テスト期間におけるユーザによるユーザ挙動を異常として分類するステップとからなる動作を含む方法において具体化され得る。
【０００９】
先述した、および、他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を、単独で、または、組み合わせて含み得る。ユーザ挙動データは、各々が、ファイルシステムにおいてユーザによってアクセスされたフォルダまたはファイルを表すユーザアクセス記録を備える。初期パスグラフを生成するステップは、主題システムにおいて、ユーザの訓練データと、ユーザの1つまたは複数のピアの訓練データとから、初期パスグラフを生成するステップを備える。これら動作は、訓練データによって表される期間中、ユーザと同じように、少なくともしきい値数のリソースへアクセスした1人または複数の他のユーザを主題システムにおいて判定するステップと、主題システムにおいて、1人または複数の他のユーザを、ユーザのピアとして指定するステップとを含む。初期パスグラフとテストパスグラフとの差分を計算するステップは、初期パスグラフとテストパスグラフとの間のジャカール距離を計算するステップを備え、ジャカール距離は、初期パスグラフとテストパスグラフとの間の交差ノードの濃度と、初期パスグラフとテストパスグラフとの間のノードの結合の濃度とに基づく。初期パスグラフとテストパスグラフとの差分を計算するステップは、初期パスグラフおよびテストパスグラフにおけるノードによって表されるリソースに関連付けられた重みを取得するステップと、初期パスグラフとテストパスグラフとの間の重み付けられたジャカール距離を計算するステップとを備え、重み付けられたジャカール距離は、初期パスグラフとテストパスグラフとの交差において発生するすべてのノードのための重みの総和と、テストパスグラフにおいて発生するすべてのノードのための重みの総和とに基づく。これら動作は、主題システムにおけるフォルダのサブフォルダよりも、主題システムにおけるフォルダへ、より高い重みを割り当てるステップを含む。これら動作は、リソースの階層における、しきい値数のレベルよりも上にある主題システムにおけるすべてのリソースへ同じ重みを割り当てるステップを含む。これら重みは、リソースの人気の尺度に基づく。これら動作は、ハイブリッドグラフを生成するステップであって、ハイブリッドグラフは、このシステムにおけるユーザを表すユーザノードと、このシステムにおけるリソースを表すリソースノードとを備え、ハイブリッドグラフは、各ユーザ-リソースリンクがシステムにおけるリソースにアクセスするそれぞれのユーザを表すユーザ-リソースリンクと、各リソース-リソースリンクがシステムにおけるリソースの構成を表すリソース-リソースリンクとを含む、ステップと、ハイブリッドグラフに従って、システムにおける1つまたは複数のリソースの人気の尺度を計算するステップと、最も高い人気の尺度を有する1つまたは複数のノードを選択するステップと、最も高い人気の尺度を有する1つまたは複数のノードの各々へのパスを、ユーザのための初期パスグラフへ追加するステップとを含む。
【００１０】
この明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数の実現するように実施され得る。このシステムは、たとえユーザアクセスパターンが、以前に見られていなくても、異常として分類し得る。これは、ルールベースのシステムはできない。このシステムは、以前のアプローチよりもはるかに高い感度で、異常検出を行うために、テストデータ再サンプリングを使用し得る。このシステムは、システムにおける各ユーザのためのユーザモデルを生成し、ユーザの挙動を、異常として、自動的にフラグし得る。ユーザのピアの動作は、異常検出における誤った肯定を低減するために、分析に組み込まれ得る。このシステムは、以前のアプローチよりもより高い粒度レベルでデータを活用し得、たとえば、フォルダアクセスおよびファイルアクセスを説明するデータを使用し得る。このシステムは、ユーザが、予期しないファイルタイプのグループへアクセスしている時を検出するために、トピックモデルを使用し得る。
【００１１】
この明細書の主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説明に記述される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】例示的な異常検出システムを示す図である。
【図１Ｂ】セグメントノードを示す図である。
【図２】再サンプリングモデルを使用してユーザアクセス記録を異常として分類するための例示的な処理のフローチャートである。
【図３】トピックモデルを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。
【図４】パスグラフを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。
【図５Ａ】初期パスグラフを例示する図である。
【図５Ｂ】例示的なテストパスグラフを例示する図である。
【図５Ｃ】別の例示的なテストパスグラフを例示する図である。
【図６】主題システムにおいて最も人気のあるリソースを判定するための例示的な処理のフローチャートである。
【図７】例示的なハイブリッドグラフを例示する図である。
【発明を実施するための形態】
【００１３】
様々な図面において同一の参照番号および指定は、同一の要素を示す。
【００１４】
図1Aは、例示的な異常検出システム100の図解である。異常検出システム100は、異常なユーザ挙動を検出するために使用され得るコンピューティングシステムの例である。一般に、異常検出システム100は、ユーザデバイス102、マスタノード110、および多数のセグメントノード114a、114b、乃至114nを含む。
【００１５】
検出されるべき異常なユーザ挙動は、典型的には、異常検出システム100とは異なる主題システムにおけるユーザによる挙動である。たとえば、主題システムは、企業に属するコンピュータネットワークであり得る。
【００１６】
ユーザデバイス102のユーザは、マスタノード110と通信することによって、異常検出システム100に記憶されたデータにアクセスし得る。ユーザデバイス102は、パーソナルコンピュータ、スマートフォン、または、ユーザがインタラクトし得る他の任意の種類のコンピュータベースのデバイスであり得る。たとえば、ユーザは、たとえば、前日または前週のような指定された期間中に発生した異常なユーザ挙動について、マスタノードへ問い合わせ得る。マスタノード110は、その後、指定された期間中、挙動が疑わしかったユーザの識別情報を取得するために、セグメントノード114a〜nと通信し得、マスタノード110は、その後、この識別情報を、ユーザデバイス102へ通信し得る。
【００１７】
マスタノード110および各セグメントノード114a〜nは、1つまたは複数の物理的なコンピュータにインストールされたソフトウェアとして、または、1つまたは複数の物理的なコンピュータにおける1つまたは複数の仮想的なマシンとしてインストールされたソフトウェアとして、またはその両方として実施される。それに加えて、各セグメントノード114a〜nは、セグメントノード内で、多数のセグメント処理を実行し得る。たとえば、セグメントノードは、各セグメント処理が、異なるコアで実行する、マルチコアコンピュータであり得る。いくつかの実施では、各物理的なセグメントノードは、8乃至12のセグメント処理を有する。
【００１８】
マスタノード110は、たとえば、1つまたは複数の通信ネットワークによって、たとえば、ローカルエリアネットワークまたはインターネットによって、または、ダイレクトな接続によって、セグメントノード114a〜nの各々へ接続される。それに加えて、セグメントノード114a〜nの各々は、1つまたは複数の他のセグメントノードへ接続され得る。マスタノード110は、異常検出システム100に記憶されたデータの一部で動作するために各セグメントノードを割り当てる。
【００１９】
各データ部分は、一般に、主題システムにおけるユーザによるユーザ挙動データの集合である。セグメントノード114a〜nによる並列処理を導入するために、各異なるユーザのためにすべてのユーザ挙動データが、単一の部分に記憶され得る。しかしながら、単一のセグメントノードが、特定のユーザのためのすべてのユーザ挙動データを取得し得るように、セグメントノード114a〜nはまた、情報を共有するために、互いに通信し得る。
【００２０】
ユーザ挙動データは、主題システムにおけるリソースにアクセスしているユーザを表すデータである。たとえば、データは、ユーザが、サーバ、ウェブサイト、ウェブページ、ファイル、ディレクトリ、データベース、または、主題システムにおける他の任意のアクセス可能なリソースへ何回アクセスしたのかを表し得る。
【００２１】
リソースにアクセスしているユーザの各インスタンスは、たとえば、アクセス記録によって、ユーザ挙動データにおいて表される。アクセス記録は、リソースを説明する情報、ユーザ、および、リソースがアクセスされた日時を含み得る。ユーザ挙動データはまた、アグリゲートされたアクセス記録を含み得る。たとえば、ユーザ挙動データは、各ユーザについて、特定の期間中、各リソースが何回アクセスされたのかを表すデータを含み得る。
【００２２】
システム100は、任意の適切なフォーマットで、何百万または何十億ものアクセス記録を記憶し得る。たとえば、システムは、ファイルシステムにおけるファイルとして、または、ファイルシステムにおけるファイルにおけるデータのラインまたは行として、または、データベースにおける記録として、各アクセス記録を記憶し得る。アクセス記録は、インデクスされ得る。
【００２３】
マスタノード110は、たとえばセグメントノード114a〜nのように、N個のセグメントノードに処理を分割し得る。セグメントノードは、たとえば、Hadoop File System(HDFS)を実施するシステムのような、基礎をなす分散記憶システムにおけるデータノードと通信することによって、アクセス記録を取得し得る。データは、一般に、多数の記憶デバイス間で区分され、任意の適切なキー値記憶サブシステムによって体系化され得る。たとえば、データ部分は、たとえば、超並列処理(MPP)データベースの一部として、多数の記憶デバイス間に分散されたリレーショナルデータベースのテーブル区分であり得る。データ部分はまた、たとえば、キー値ペアによって、データを異なる列ファミリに体系化し、多数の記憶デバイスにわたって分散されたHadoop Database(HBase)におけるように、分散された、非リレーショナルなデータベースの一部として記憶され得る。データ部分はまた、セグメントノード114a〜nによってローカルに記憶されるように区分され得る。
【００２４】
図1Aに例示された例示的な異常検出システム100では、マスタノード110は、基礎をなす分散記憶システムの第1の記憶サブシステム132aに記憶された第1のユーザのグループのためのアクセス記録142aに関して動作するために、セグメントノード114aを割り当てた。同様に、マスタノード110は、第2の記憶サブシステム132bに記憶されたアクセス記録142bに関して動作するために、セグメントノード114bを割り当て、マスタノード110は、第Nの記憶サブシステム132nに記憶されたアクセス記録142nに関して動作するために、セグメントノード114nを割り当てた。
【００２５】
図1Bは、セグメントノード114の図解である。システムにおけるセグメントノード114a〜nの各々は、ユーザ毎のモデルを並列的に計算する。言い換えれば、システムは、主題システムの各ユーザのために、1つまたは複数の異なるモデルを生成する。
【００２６】
各セグメントノード114は、マスタノードによって割り当てられたユーザID145を受信するセグメントノード114にインストールされた異常検出ソフトウェアを実行させる。異常検出ソフトウェアは、その後、基礎をなす記憶サブシステムから、ユーザID145に対応するユーザのユーザアクセス記録142を取得し、どのアクセス記録142が訓練データであり、どのアクセス記録がテストデータであるのかを判定する。いくつかの個々のアクセス記録は、訓練データとテストデータとの両方として使用され得る。
【００２７】
一般に、テストデータは、最近の期間、ユーザによってアクセスされたリソースを示す表示を含み、訓練データは、テストデータの期間の前の多数の期間、アクセスされたリソースを表す表示を含む。たとえば、期間が、その年の週であれば、テストデータは、最も直近の週の間にアクセスされたリソースを示す表示を含み得、訓練データは、前月または前年中にアクセスされたリソースを示す表示を含み得る。テストデータに対応する期間は、テスト期間と称され得る。
【００２８】
しかしながら、テストデータは、直近の期間を表す必要はない。たとえば、このシステムは、過去に発生した異常挙動を識別するために、任意の適切な期間のアクセス記録をテストデータとして使用し得る。
【００２９】
セグメントノード114にインストールされた異常検出ソフトウェアは、ユーザのアクセス記録142が、ユーザによる異常挙動を反映しているか否かを判定するために、各セグメントノードにインストールされた1つまたは複数のモデリングエンジン180、182、および184を活用する。モデリングエンジン180、182、および184のすべて、または、モデリングエンジン180、182、および184のいくつかのみが、任意の特定のセグメントノードにインストールされ得る。
【００３０】
セグメントノード114は、テストデータのうちのいくつかを訓練データとして再サンプルする再サンプリングモデルエンジン180を使用し得る。再サンプリングモデルは、図2を参照して、より詳細に以下に説明される。セグメントノード114はまた、ユーザによってアクセスされたファイルタイプに基づいてトピックモデルを生成する、トピックモデルエンジン182をも使用し得る。トピックモデルは、図3を参照して、より詳細に以下に説明される。セグメントノード114はまた、パスグラフモデルエンジン184を使用し得る。これは、異常挙動を判定するために、訓練データおよびテストデータからパスグラフを構築する。パスグラフは、図4〜図7を参照して、より詳細に以下に説明される。
【００３１】
このシステムは、ユーザアクセス記録142のテストデータを、異常または非異常として分類するために、モデリングエンジン180、182、および184を使用し得る。テストデータが異常として分類されると、セグメントノード114は、異常挙動通知155を生成し得、たとえば、マスタノード110へ戻すように、システムにおける別のノードへこの通知155を提供し得る。マスタノード110は、その後、この通知を、ユーザデバイス102へ伝搬し得る。
【００３２】
図2は、再サンプリングモデルを使用して、ユーザアクセス記録を異常として分類するための例示的な処理のフローチャートである。一般に、このシステムは、多数回再サンプルした場合、テストデータが、ユーザのアクセス挙動の初期統計モデルの特性的特徴にどれくらい影響を与えたのかを判定する。例示的な処理は、1つまたは複数のコンピュータの、適切にプログラムされたシステムによって実行されるものとして説明されるであろう。
【００３３】
このシステムは、ユーザのアクセス記録を取得する(210)。上述されるように、アクセス記録は、多数の期間の各々の間、どのリソースがユーザによってアクセスされたのかを示す。
【００３４】
このシステムは、ユーザのアクセス記録を示す表示を生成する(220)。いくつかの実施では、この表示は、ベクトルまたは行列であり、このシステムは、いくつかの期間の各々のために、ベクトルを生成する。ベクトルにおける各位置は、主題システムにおけるリソースを表し、ベクトルにおける各値は、主題システムにおけるリソースにユーザがアクセスした回数を表し、これは、ベクトルにおける値の位置に対応する。
【００３５】
このシステムは、訓練データを使用して、初期モデルを生成する(230)。上述されるように、訓練データは、前の期間のためのユーザのアクセス記録を示す表示を含む。
【００３６】
特性を表すための任意の適切な統計モデルは、データセットに注目しているので、このシステムは、初期モデルを生成し得る。いくつかの実施では、システムは、データを行列として表し、ユーザのための訓練データの特性的特徴を示す表示を生成するために、たとえば、特異値分解(SVD)、主成分分析(PCA)、または非負行列因子分解(NMF)のような任意の適切な行列因数分解技術を使用する。
【００３７】
たとえば、このシステムは、訓練データからの、アクセス記録ベクトルの行列Xを生成し得る。このシステムは、その後、Xの主成分を表す行列Tを生成するために、SVDを実行し得る。
【００３８】
このシステムは、訓練データと、多数回サンプルされたテストデータとから、再サンプリングモデルを生成する(240)。テストデータを多数回再サンプルすることは、訓練データとテストデータとの差分を拡大する効果を有する。
【００３９】
たとえば、再サンプリングモデルを生成するためにSVDを使用するのであれば、このシステムは、訓練データのすべてのベクトルと、テストデータのベクトルのN個のインスタンスとを使用し得る。言い換えれば、このシステムは、訓練データのベクトルと、テストデータのベクトルのN個のインスタンスとを含む行列X'を生成し得る。一般に、行列X'は、初期モデルのための行列Xよりも多くの列を含むであろう。このシステムは、その後、X'の主成分を表す行列T'を生成するために、SVDを実行し得る。
【００４０】
このシステムは、初期モデルと再サンプリングモデルとを比較する(250)。このシステムは、たとえば、モデルの特性的特徴間の差分を計算することによって、初期モデルと再サンプリングモデルとがどれくらい異なるのかを判定するために、任意の適切な比較方法を使用し得る。SVDを使用するのであれば、このシステムは、初期モデルTのための主成分と、再サンプリングモデルT'のための主成分との間の角度を計算し得る。
【００４１】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(260)。初期モデルと再サンプリングモデルとの差分は、テストデータが、初期モデルに対して、再サンプリングモデルにおいて、より劇的な効果を有する場合、常に大きくなるであろう。したがって、テストデータは、差分が大きい場合、異常となる可能性が高い。
【００４２】
しかしながら、初期モデルと再サンプリングモデルとの差分が小さいのであれば、テストデータは、訓練データのみから生成される初期モデルに対して、最小のインパクトしか有さない。したがって、テストデータは、異常となる可能性は低い。
【００４３】
したがって、このシステムは、両モデル間の差分が、しきい値を満足するか否かを判定し得、差分がしきい値を満足するのであれば、ユーザ挙動を異常として分類し得る。
【００４４】
図3は、トピックモデルを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。この例示的な処理では、このシステムは、ユーザによってアクセスされたリソースに従うのではなく、ユーザによってアクセスされた関連するファイルタイプのグループに従って、主題システムにおけるユーザの挙動を表す。関連するファイルタイプのグループは、トピックとして表され得、テスト期間中に、ユーザが実質的に異なるファイルタイプにアクセスしたことをテストデータが示すのであれば、このシステムは、ユーザの挙動を異常として分類し得る。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムによって実行されるとして説明されるであろう。
【００４５】
このシステムは、主題システムにおいてファイルからトピックを生成する(310)。このシステムは、トピックを生成し得、ここでは、各トピックが、個々のユーザのユーザアクセス記録において頻繁に共起するファイルタイプのグループを表す。典型的には、このシステムは、多くの異なるユーザからのユーザアクセス記録を使用してトピックを生成する。
【００４６】
いくつかの実施では、このシステムは、ファイルのタイプを示すために、ファイルの拡張子を使用する。しかしながら、このシステムは、ファイルタイプを判定するために、システムにおけるファイルに関する他のメタデータを使用し得る。
【００４７】
このシステムは、各ユーザを、ドキュメントとして、および、ユーザによってアクセスされた各ファイルタイプを、ドキュメントにおいて発生する用語として取り扱うことによって、任意の適切なトピックモデリング技術を使用し得る。このシステムは、主題システムにおいてユーザアクセスファイルを表すすべてのユーザアクセス記録にわたって、トピックモデリング技術を使用し得る。この結果は、その後、各々が、頻繁に発生するファイルタイプを表すトピックの数となる。このシステムは、発見された各トピックのためにユニークな識別子を割り当て得る。
【００４８】
たとえば、このシステムは、Latent Dirichlet Allocation(LDA)を使用してK個のトピックを生成し得る。LDAは、入力パラメータとして、トピックの数Kを採用し、K個のトピックの各々のための確率分布を生成する。各確率分布は、トピックに割り当てられたファイルタイプにアクセスしたユーザによってアクセスされている特定のファイルタイプへ、確率を割り当てる。
【００４９】
このシステムは、Kのための候補値にわたって反復することと、モデルの複雑さを計算することとによって、Kのための値を選択し得る。このシステムは、モデルにおけるトピックの数と、モデルの複雑さとをバランスさせるKのための値を選択し得る。
【００５０】
このシステムは、ユーザのアクセス記録を取得する(320)。アクセス記録は、ユーザによってアクセスされた電子ファイルと、ユーザによってアクセスされたファイルのファイルタイプ情報とを示し得る。
【００５１】
このシステムは、ユーザのアクセス記録を示す表示を生成する(330)。このシステムは、いくつかの期間の各々のためのベクトルを生成し得る。ベクトルの各要素は、K個のトピックのうちの1つを表し、ベクトルにおける各値は、対応するトピックの各々に属するファイルタイプへユーザがアクセスした回数を表す。いくつかの実施では、各要素は、対応するトピックの各々に属するファイルタイプにユーザがアクセスした各期間における日の数を表す。
【００５２】
このシステムは、テストデータを再構築するために、訓練データから生成される初期SVDモデルを使用する(340)。上述したように、このシステムは、訓練データと、たとえばSVDまたはPCAのようなテストデータとの特性的特徴を表すために、任意の適切な統計モデルを使用し得る。
【００５３】
このシステムは、同様に、テストデータが訓練データへ多数回追加された場合、初期SVDモデルが、再サンプリングモデルに対してどれくらい変化したのかを判定するために、図2を参照して上述された再サンプリング技術を使用し得る。
【００５４】
いくつかの実施では、このシステムは、モデルを比較するために、特異値分解(SVD)を使用し得る。たとえば、このシステムは、訓練データからの行列Xを生成し得る。ここで、各列は、訓練データにおける期間を表し、各行は、K個のトピックのうちの1つを表す。このシステムは、その後、行列Yを生成するためにSVDを実行し得る。このシステムは、その後、Yから、先頭のk個の右単一列ベクトルVを、訓練期間中、ユーザの挙動を表すものとして選択し得る。
【００５５】
このシステムは、その後、
D=||xi+1-V×(VT×xi+1)||
に従って距離Dを計算することによって、訓練データのベクトルとして表されるテストデータを比較し得る。
【００５６】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(350)。この差分がしきい値を満足するのであれば、このシステムは、ユーザ挙動を異常として分類し得る。そうではない場合、このシステムは、ユーザ挙動を、非異常として分類し得る。
【００５７】
図4は、パスグラフを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。パスグラフは、関連する期間中、主題システムにおけるリソースへユーザがどのようにナビゲートしたのかを示す表示である。テスト期間においてパスグラフが著しく変化するのであれば、このシステムは、ユーザ挙動を異常として分類し得る。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムにおって実行されるものとして説明されるであろう。
【００５８】
このシステムは、訓練データを使用して、初期パスグラフを生成する(410)。パスグラフは、主題システムにおいてユーザによってアクセスされたリソース間の関係を表す。
【００５９】
パスグラフは、主題システムにおいてユーザによってアクセスされたリソースを表すノードを含む。たとえば、パスグラフのノードは、ファイルシステムにおけるフォルダおよびファイルを表し得る。パスグラフのノードはまた、主題システムによって維持されたウェブページをも表し得る。
【００６０】
パスグラフは、あるノードから別のノードへアクセスしているユーザを表すための、2つのノード間のリンクを含む。言い換えれば、パスグラフは、第1のノードによって表される第1のリソースを訪問し、その後、第2のノードによって表される第2のリソースを訪問するユーザを表すためのリンクを含む。したがって、これらリンクは、フォルダおよびサブフォルダの関係、ウェブページ間のリンク、ファイルシステムにおける象徴的なリンクまたはショートカット、または、別のリソースからあるリソースへアクセスするための他の任意の適切な方法を表し得る。
【００６１】
図5Aは、初期パスグラフを例示する。この例では、パスグラフのノードは、ファイルシステムにおけるフォルダを表し、リンクは、親フォルダからサブフォルダへアクセスしているユーザを表す。
【００６２】
初期パスグラフは、「ホーム」ディレクトリを表すルートノード510を有する。初期パスグラフはまた、「ホーム」ディレクトリのサブフォルダを表す他のノード520、522、および530を含む。
【００６３】
ノード510とノード520との間のリンクは、ユーザが、「ホーム」ディレクトリを訪問し、その後、「ホーム」ディレクトリから「フォルダB」を訪問したことを表す。同様に、ノード520とノード530との間のリンクは、ユーザが、「フォルダ」ディレクトリから「サブフォルダC」ディレクトリを訪問したことを表す。
【００６４】
したがって、このシステムが、訓練データを使用して初期パスグラフを生成する場合、結果として得られる初期パスグラフは、ユーザによってアクセスされたリソースを表すノードと、ユーザがそれらリソースへどのようにナビゲートしたのかを表すリンクとを含む。
【００６５】
このシステムはまた、初期パスグラフを生成した場合、ユーザのピアからのデータを含み得る。いくつかのインスタンスでは、初期パスグラフを、ユーザのピアからのデータとともに使用することは、異常挙動の誤った肯定的な検出を低減し得る。
【００６６】
ユーザのピアは、一般に、アクセスされたリソースに関して、ユーザとの実質的なオーバラップを有する主題システムにおけるユーザである。たとえば、ユーザのピアは、組織内の同じチームの他のメンバ、または、同じ部署、地域、または会社における他の従業員であり得る。
【００６７】
いくつかの実施では、このシステムは、少なくとも、しきい値量のリソースオーバラップを有する他のユーザを識別することによって、ユーザのピアを判定する。言い換えれば、このシステムは、他のどのユーザが、考慮されたユーザと同様に、たとえば、同じリソースの少なくとも10%、50%、または80%のように、少なくともしきい値量のリソースへアクセスしたのかを計算するために、主題システムにおけるすべてのユーザのための訓練データを使用する。
【００６８】
このシステムはまた、主題システムを所有する組織のための組織データを使用し得る。たとえば、このシステムは、同じチームまたは部署の一部であるユーザを、ピアとして指定し得る。このシステムはまた、組織内の同じまたは類似の役割を有するユーザを、ピアであるべきと指定し得る。
【００６９】
ユーザのピアを識別した後、このシステムは、ユーザおよび、ユーザのピアのすべてのための訓練データを使用して、初期パスグラフを生成し得る。
【００７０】
図4に図示されるように、このシステムは、テストデータを使用して、テストパスグラフを生成する(420)。テストパスグラフは、テストデータから生成されたパスグラフである。上述されるように、テストデータは、最も直近の期間中、ユーザによってアクセスされたリソースを表し得る。したがって、テストパスグラフは、テストデータによって表される期間中、ユーザが、主題システムにおけるリソースへどのようにナビゲートしたのかを表す。
【００７１】
図5Bは、例示的なテストパスグラフを例示する。テストパスグラフは、2つの新たなノードであるノード540および542と、破線によって表される、対応する新たなリンクとを含む。新たなノード540および542は、テスト期間中、ユーザによってアクセスされるリソースを表すが、訓練期間中は表さない。
【００７２】
図4に図示されるように、このシステムは、初期パスグラフをテストパスグラフと比較する(430)。このシステムは、初期パスグラフをテストパスグラフと比較するために様々な方法を使用し得る。一般に、このシステムは、初期パスグラフとテストパスグラフとの間のオーバラップの尺度を計算する。初期パスグラフと著しくオーバラップするテストパスグラフは、正常なユーザ挙動を示す。一方、初期パスグラフとオーバラップせず、多くのノードおよびエッジを有するテストパスグラフは、異常的なユーザ挙動を示す。
【００７３】
たとえば、このシステムは、
【００７４】
【数１】
0006661768.tif 000002
【００７５】
に従って、初期パスグラフG1と、テストパスグラフG2との間のジャカール距離Dを計算し得る。ここで、
【００７６】
【数２】
0006661768.tif 000003
【００７７】
は、G1におけるノードのセットと、G2におけるノードのセットとの交差の濃度を表し、
【００７８】
【数３】
0006661768.tif 000004
【００７９】
は、G1におけるノードのセットと、G2におけるノードのセットとの結合の濃度を表す。
【００８０】
いくつかの実施では、このシステムは、リソースへの重みに従って、重み付けられたジャカール距離を計算する。このシステムは、様々な要因に基づいて、リソースへ重みを割り当て得る。たとえば、このシステムは、たとえば、機密の企業または従業員データのような機密情報を含むリソースへ、より高い重みを割り当て得る。したがって、異常挙動の検出は、より高い重みを有するフォルダにアクセスしているユーザに対して、より感度が高くなる。
【００８１】
このシステムはまた、階層的なリソースの関係に基づいて、重みを割り当て得る。たとえば、リソースが、フォルダおよびサブフォルダを表すのであれば、このシステムは、フォルダのサブフォルダよりも、フォルダへ、より高い重みを割り当て得る。これは、異常挙動の検出を、ユーザがすでにアクセスしたフォルダの新たなサブフォルダにユーザが単にアクセスした状況に対して、より感度を低くする。いくつかの実施では、このシステムは、第1の重みを、階層におけるしきい値数のレベルよりも上にあるすべてのリソースへ割り当て、より小さな第2の重みを、他のすべてのリソースへ割り当てる。たとえば、このシステムは、第1の重みを、ファイルシステムのルートディレクトリと、ルートディレクトリの下方最大3レベルのすべてのディレクトリとに割り当て得る。他のすべてのサブフォルダについて、このシステムは、第2の重みを割り当て得る。
【００８２】
このシステムはまた、このシステムにおけるリソースの世代に基づいて重みを割り当て得る。いくつかの状況では、異常挙動は、古いリソースよりも、新たに生成されたリソースを含む可能性がより高い。したがって、このシステムは、新たなリソースへ割り当てられる重みを増加させ得、リソースが古くなると、リソースのための重みを減少させ得る。
【００８３】
このシステムはまた、主題システムにおけるリソースの人気の尺度に基づいて、重みを割り当て得る。たとえば、このシステムは、主題システムにおいて、多くのユーザによってアクセスされた人気のあるリソースへ割り当てられる重みを低下させ得る。このシステムは同様に、たとえば、人気のあるフォルダのサブフォルダのように、人気のあるリソースのすべての子リソースの重みを低下させ得る。
【００８４】
システムにおけるリソースへ重みを割り当てた後、このシステムは、
【００８５】
【数４】
0006661768.tif 000005
【００８６】
に従って、重み付けられたジャカール距離WDを計算し得る。ここで、分子項は、G1とG2との交差において発生するすべてのノードのための重みの総和を表し、分母項は、G2において発生するすべてのノードのための重みの総和を表す。
【００８７】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(440)。初期パスグラフとテストパスグラフとの間の計算された距離が、大きいのであれば、ユーザ挙動は、異常である可能性がより高い。計算された距離が小さいのであれば、ユーザ挙動は、異常である可能性がより低い。したがって、このシステムは、計算された距離がしきい値を満足するのであれば、ユーザ挙動を異常として分類し得る。
【００８８】
異常イベントは典型的に、主題システムの法医学チームによるフォローアップを必要とする。したがって、このシステムは、異常ケースを調査するために、このチームの予期される有用性に基づいて、各テスト期間のためのしきい値を調節し得る。
【００８９】
たとえば、図5Aに例示される初期パスグラフと、図5Bに例示されるテストパスグラフとの間のジャカール距離は、比較的低い0.333である。したがって、このシステムは、ユーザ挙動が異常であると考慮しないことがあり得る。
【００９０】
図5Cは、別の例示的なテストパスグラフを例示する。テストパスグラフは、6つの新たなノード540、542、544、550、552、および554と、破線によって表される対応する新たなリンクとを含む。
【００９１】
図5Aに例示された初期パスグラフと、図5Cに例示されたテストパスグラフとの間のジャカール距離は、比較的高い0.6である。したがって、このシステムは、ユーザ挙動が異常であると考慮し得る。
【００９２】
図6は、主題システムにおいて、最も人気のあるリソースを判定するための例示的な処理のフローチャートである。このシステムは、異常またはそうではないユーザ挙動の判定を行う場合、どのリソースが人気があるのかを考慮し得る。別の方法で人気があるリソースへアクセスすることを除いて、ユーザの挙動が正常であれば、システムは、ユーザ挙動が、異常であるとフラグすることを回避する。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムによって実行されるとして説明されるであろう。
【００９３】
このシステムは、ハイブリッドユーザ/リソースグラフを生成する(610)。ハイブリッドグラフは、2つのタイプのノード、すなわち、ユーザを表すユーザノードと、主題システムにおけるリソースを表すリソースノードとを有する。ハイブリッドグラフはまた、2つのタイプの対応するリンク、すなわち、主題システムにおけるリソースの構造を表すリソース-リソースリンクと、主題システムにおけるリソースにアクセスしているユーザを表すユーザ-リソースリンクとを有する。
【００９４】
図7は、例示的なハイブリッドグラフを例示する。ハイブリッドグラフは、図5Aに図示される例示的なグラフと同じリソース構造を有し、ファイルシステムにおけるフォルダを表す4つのリソースノード710、720、722、および730を有する。
【００９５】
ハイブリッドグラフは、リソースノード間のリソース-リソースリンクを有する。これは、システムにおけるリソースの構造を表す。この例では、リソース-リソースリンクは、ディレクトリ取り込みを表す。
【００９６】
ハイブリッドグラフはまた、システムにおける異なるユーザを表す2つのユーザノード760および762を含む。ハイブリッドグラフは、各ユーザがどのリソースにアクセスしたのかを表すユーザ-リソースリンクを有する。
【００９７】
この例では、ホームフォルダは、他のフォルダよりもより多くのユーザによってアクセスされたので、ユーザ-リソースリンクは、ホームフォルダが、他のフォルダよりもより人気のあることを示す可能性が高い。
【００９８】
図6に図示されるように、このシステムは、ハイブリッドグラフに従って、このシステムにおけるリソースのためのスコアを計算する(620)。一般に、このスコアは、グラフによって表される関係に基づいて、このシステムにおけるリソースのための人気の尺度を表す。したがって、より多くのユーザによってアクセスされたリソースは、より高いスコアを有し、より少ないユーザによってアクセスされたリソースは、より低いスコアを有するであろう。
【００９９】
いくつかの実施では、このシステムは、ノードにおいて終了するリソース-リソースリンクを介してランダムナビゲーションを実行するユーザの可能性を表す第1の成分と、子ノードの親ノードによって表されるリソースから、子ノードによって表されるリソースに達するユーザの可能性を表す第2の成分とを有するスコアを計算する。
【０１００】
このシステムは、以下の式に従って、各ノードS(i)のスコアを反復的に計算し得る。
【０１０１】
【数５】
0006661768.tif 000006
【０１０２】
ここで、各ノードjは、別のユーザノード、または、ノードiへのリンクを有する別のリソースノードを表し、Nは、ハイブリッドグラフにおけるノードの数であり、dは、減衰率である。どのような出射端をも有さないノードについて、システムは、グラフにおけるN個のすべてのノード間に等しくスコアを分配し得る。
【０１０３】
このシステムは、最も高いスコアを有するリソースノードを選択する(630)。このシステムは、計算されたスコアによって、リソースノードをランク付けし得、最も高くランク付けされたリソースノードを、このシステムにおいて最も人気のあるノードとして選択し得る。このシステムは、最も高くランク付けされたリソースノードのうち、あらかじめ決定された数のリソースノードを選択し得るか、または、あるいは、このシステムは、しきい値を満足するスコアを有するすべてのリソースノードを選択し得る。
【０１０４】
このシステムは、選択されたリソースノードへのパスを、すべての初期パスグラフへ追加する(640)。最も人気のあるノードを判定した後、このシステムは、最も人気のあるノードのすべてへのパスを、主題システムにおけるすべてのユーザのための初期パスグラフへ追加し得る。そうすることによって、このシステムは、あたかもユーザが、最も人気のあるフォルダの各々にアクセスしたかのように、各ユーザを取り扱う。ピアベースのアプローチを使用する場合、このシステムは、あたかもユーザのピアが、最も人気のあるフォルダの各々にアクセスしたかのように、ユーザのピアの各々を取り扱う。
【０１０５】
最も人気のあるフォルダへパスを追加することによって、ユーザが頻繁に訪問しないフォルダであるものの、逆にこのシステムにおけるユーザの間で人気のあるフォルダに、ユーザが訪問することによって生成される、誤った肯定の量を、このシステムは低減し得る。
【０１０６】
この明細書において説明された主題および機能的工程の実施形態は、デジタル電子回路において、有形的に具体化されたコンピュータソフトウェアまたはファームウェアにおいて、この明細書において開示された構成およびその構成的等価物を含むコンピュータハードウェアにおいて、または、それらのうちの1つまたは複数の組合せにおいて実施され得る。この明細書において説明された主題の実施形態は、データ処理装置による実行のために、または、データ処理装置の工程を制御するために、有形の非一時的なプログラムキャリアにおいてエンコードされた、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。あるいは、または、それに加えて、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信のための情報をエンコードするために生成された、たとえば、マシンによって生成された電気、光、または電磁信号のような人工的に生成された伝搬信号においてエンコードされ得る。コンピュータ記憶媒体は、マシン読取可能な記憶デバイス、マシン読取可能な記憶基板、ランダムまたはシリアルなアクセスメモリデバイス、または、これらのうちの1つまたは複数の組合せであり得る。しかしながら、コンピュータ記憶媒体は、伝搬された信号ではない。
【０１０７】
「データ処理装置」という用語は、例によれば、プログラマブルプロセッサ、コンピュータ、または、マルチプロセッサまたはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、これらの1つまたは複数の組合せを構成するコードを含み得る。
【０１０８】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとしても称され得るか、または説明される)コンピュータプログラムは、コンパイルまたはインタプリタされた言語、または、宣言型または手続型言語を含む任意の形態のプログラミング言語で記述され得、スタンドアロンプログラムとして、または、モジュール、構成要素、サブルーチン、またはコンピューティング環境における使用のために適切な他のユニットを含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、対応する必要はない。プログラムは、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトのように、他のプログラムまたはデータを保持するファイルの一部に、問題となっているプログラムに専用の単一のファイルに、または、たとえば、1つまたは複数のモジュール、サブプログラム、または、コードの一部を記憶するファイルのような、多数の調整されたファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータにおいて、または、1つのサイトにおいて配置された、または、多数のサイトにわたって分散され、通信ネットワークによって相互接続された多数のコンピュータにおいて実行されるように展開され得る。
【０１０９】
この明細書において使用されるように、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供する、ソフトウェアによって実施される入力/出力システムを称する。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトのような、エンコードされた機能のブロックであり得る。各エンジンは、たとえば、サーバ、モバイル電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子ブックリーダ、ラップトップまたはデスクトップコンピュータ、PDA、スマートフォン、または、他の固定式またはポータブルデバイスのように、1つまたは複数のプロセッサおよびコンピュータ読取可能な媒体を含む、任意の適切なタイプのコンピューティングデバイスにおいて実施され得る。それに加えて、これらエンジンのうちの2つ以上は、同じコンピューティングデバイスにおいて、または、異なるコンピューティングデバイスにおいて実施され得る。
【０１１０】
この明細書において説明された処理および論理フローは、入力データに対して動作し、出力を生成することによって、機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。処理および論理フローはまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)のような、専用論理回路によって実行され得、装置はまた、たとえば、FPGAまたはASICのような、専用論理回路によって実施され得る。
【０１１１】
コンピュータプログラムの実行のために適切なコンピュータは、汎用または専用のマイクロプロセッサ、または、その両方、または、他の任意の種類の中央処理装置を含み、例によれば、汎用または専用のマイクロプロセッサ、または、その両方、または、他の任意の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取専用メモリまたはランダムアクセスメモリまたはこれら両方から命令およびデータを受信するであろう。コンピュータの必須要素は、命令を実行または実施するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、たとえば磁気、磁気光ディスク、または光ディスクのように、データを記憶するための1つまたは複数の大容量デバイスを含むか、または、これらからデータを受信またはこれらへのデータの伝送、またはその両方のために動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、いくつか名前を挙げると、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または、たとえばユニバーサルシリアルバス(USB)フラッシュドライブのようなポータブル記憶デバイスのような別のデバイスに埋め込まれ得る。
【０１１２】
コンピュータプログラム命令およびデータを記憶するために適切なコンピュータ読取可能な媒体は、例によれば、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイスと、たとえば、内部ハードディスクまたはリムーバブルディスクのような磁気ディスクと、磁気光ディスクと、CD ROMディスクおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補強され得るか、または、専用論理回路へ組み込まれ得る。
【０１１３】
ユーザとのインタラクションを提供するために、この明細書において説明された主題の実施形態は、たとえば、CRT(陰極放電管)モニタ、LCD(液晶ディスプレイ)モニタ、またはOLEDディスプレイのように、ユーザへ情報を表示するためのディスプレイデバイスのみならず、たとえば、キーボード、マウス、または、存在検知ディスプレイまたは他の面のように、コンピュータへ入力を提供するための入力デバイスをも有するコンピュータにおいて実施され得る。他の種類のデバイスもまた、ユーザとのインタラクションを提供するために使用され得、たとえば、ユーザへ提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックのような任意の形態の知覚的フィードバックであり得、ユーザからの入力は、音響、発話、または触覚入力を含む任意の形態で受信され得る。それに加えて、たとえば、ウェブブラウザから受信したリクエストに応じて、ユーザのクライアントデバイスにおけるウェブブラウザへウェブページを送信することによって、コンピュータは、ユーザによって使用されるデバイスへリソースを送信し、このデバイスからリソースを受信することによって、ユーザとインタラクトし得る。
【０１１４】
この明細書において説明された主題の実施形態は、たとえばデータサーバのようなバックエンド構成要素を含む、または、たとえばアプリケーションサーバのようなミドルウェア構成要素を含む、または、たとえば、この明細書において説明された主題の実施とユーザがインタラクトし得るグラフィックユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータのようなフロントエンド構成要素、または、1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実施され得る。システムの構成要素は、たとえば通信ネットワークのようなデジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)と、たとえばインターネットのような広域ネットワーク(「WAN」)とを含む。
【０１１５】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータにおいて起動し、互いにクライアント-サーバ関係を有している、コンピュータプログラムによって生じる。
【０１１６】
この明細書は、多くの具体的な実施詳細を含んでいるが、これらは、任意の発明の、または、特許請求され得るものの範囲に対する限定としてではなく、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。個別の実施形態のコンテキストにおいてこの明細書において説明されているいくつかの特徴はまた、単一の実施形態における組合せにおいても実施され得る。逆に、単一の実施形態のコンテキストにおいて説明されている様々な特徴はまた、多数の実施形態において個別に、または、任意の適切な部分組合せにおいても実施され得る。その上、特徴は、いくつかの組合せにおいて動作するものとして上述され得、そのようなものとして最初に特許請求されているが、特許請求された組合せからの1つまたは複数の特徴が、いくつかのケースでは、組合せから削除され得、特許請求された組合せは、部分組合せまたは部分組合せの変形を対象とされ得る。
【０１１７】
同様に、工程は、特定の順序で図面に描写されているが、これは、所望される結果を達成するために、そのような工程が、図示された特定の順序または順番で実行されることも、または、例示されたすべての工程が実行されることも、必要としているとして理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利であり得る。その上、上述された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要としているとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品にともに統合され得るか、または、多数のソフトウェア製品へパッケージされ得ることが理解されるべきである。
【０１１８】
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記述された動作は、異なる順序で実行され得、なお、所望される結果を達成し得る。一例として、添付図面に描写された処理は、所望される結果を達成するために、必ずしも、図示された特定の順序、または順番を必要とする訳ではない。いくつかの実施では、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【０１１９】
100  異常検出システム
102  ユーザデバイス
110  マスタノード
114  セグメントノード
114a  セグメントノード
114b  セグメントノード
114n  セグメントノード
132a  第1の記憶サブシステム
132b  第2の記憶サブシステム
132n  第Nの記憶サブシステム
142  ユーザアクセス記録
142a  アクセス記録
142b  アクセス記録
142n  アクセス記録
145  ユーザID
155  異常挙動通知
180  再サンプリングモデルエンジン
182  トピックモデルエンジン
184  パスグラフモデルエンジン
510  ルートノード
520  他のノード
522  他のノード
530  他のノード
540  新たなノード
542  新たなノード
544  新たなノード
550  新たなノード
552  新たなノード
554  新たなノード
710  リソースノード
720  リソースノード
722  リソースノード
730  リソースノード
760  ユーザノード
762  ユーザノード
【図１Ａ】
0006661768.tif 000007
【図１Ｂ】
0006661768.tif 000008
【図２】
0006661768.tif 000009
【図３】
0006661768.tif 000010
【図４】
0006661768.tif 000011
【図５Ａ】
0006661768.tif 000012
【図５Ｂ】
0006661768.tif 000013
【図５Ｃ】
0006661768.tif 000014
【図６】
0006661768.tif 000015
【図７】
0006661768.tif 000016