(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザ挙動データは、各々が、ファイルシステムにおいて前記ユーザによってアクセスされたフォルダまたはファイルを表すユーザアクセス記録を備える、請求項1に記載の方法。
前記初期パスグラフを生成するステップは、前記主題システムにおいて、前記ユーザの訓練データと、前記ユーザの1つまたは複数のピアの訓練データとから、前記初期パスグラフを生成するステップを備える、請求項1に記載の方法。
前記訓練データによって表される前記期間中、前記ユーザと同じように、少なくともしきい値数のリソースへアクセスした1人または複数の他のユーザを前記主題システムにおいて判定するステップと、
前記主題システムにおいて、前記1人または複数の他のユーザを、前記ユーザのピアとして指定するステップとをさらに備える、請求項3に記載の方法。
前記初期パスグラフと前記テストパスグラフとの前記差分を計算するステップは、前記初期パスグラフと前記テストパスグラフとの間のジャカール距離を計算するステップを備え、前記ジャカール距離は、前記初期パスグラフと前記テストパスグラフとの間の交差ノードの濃度と、前記初期パスグラフと前記テストパスグラフとの間のノードの結合の濃度とに基づく、請求項1に記載の方法。
ハイブリッドグラフを生成するステップであって、前記ハイブリッドグラフは、前記システムにおけるユーザを表すユーザノードと、前記システムにおけるリソースを表すリソースノードとを備え、前記ハイブリッドグラフは、各ユーザ-リソースリンクが前記システムにおけるリソースにアクセスするそれぞれのユーザを表すユーザ-リソースリンクと、各リソース-リソースリンクが前記システムにおけるリソースの構成を表すリソース-リソースリンクとを含む、ステップと、
前記ハイブリッドグラフに従って、前記システムにおける1つまたは複数のリソースの人気の尺度を計算するステップと、
最も高い人気の尺度を有する1つまたは複数のノードを選択するステップと、
前記最も高い人気の尺度を有する前記1つまたは複数のノードの各々へのパスを、前記ユーザのための前記初期パスグラフへ追加するステップと
をさらに備える、請求項8に記載の方法。
【発明を実施するための形態】
【0013】
様々な図面において同一の参照番号および指定は、同一の要素を示す。
【0014】
図1Aは、例示的な異常検出システム100の図解である。異常検出システム100は、異常なユーザ挙動を検出するために使用され得るコンピューティングシステムの例である。一般に、異常検出システム100は、ユーザデバイス102、マスタノード110、および多数のセグメントノード114a、114b、乃至114nを含む。
【0015】
検出されるべき異常なユーザ挙動は、典型的には、異常検出システム100とは異なる主題システムにおけるユーザによる挙動である。たとえば、主題システムは、企業に属するコンピュータネットワークであり得る。
【0016】
ユーザデバイス102のユーザは、マスタノード110と通信することによって、異常検出システム100に記憶されたデータにアクセスし得る。ユーザデバイス102は、パーソナルコンピュータ、スマートフォン、または、ユーザがインタラクトし得る他の任意の種類のコンピュータベースのデバイスであり得る。たとえば、ユーザは、たとえば、前日または前週のような指定された期間中に発生した異常なユーザ挙動について、マスタノードへ問い合わせ得る。マスタノード110は、その後、指定された期間中、挙動が疑わしかったユーザの識別情報を取得するために、セグメントノード114a〜nと通信し得、マスタノード110は、その後、この識別情報を、ユーザデバイス102へ通信し得る。
【0017】
マスタノード110および各セグメントノード114a〜nは、1つまたは複数の物理的なコンピュータにインストールされたソフトウェアとして、または、1つまたは複数の物理的なコンピュータにおける1つまたは複数の仮想的なマシンとしてインストールされたソフトウェアとして、またはその両方として実施される。それに加えて、各セグメントノード114a〜nは、セグメントノード内で、多数のセグメント処理を実行し得る。たとえば、セグメントノードは、各セグメント処理が、異なるコアで実行する、マルチコアコンピュータであり得る。いくつかの実施では、各物理的なセグメントノードは、8乃至12のセグメント処理を有する。
【0018】
マスタノード110は、たとえば、1つまたは複数の通信ネットワークによって、たとえば、ローカルエリアネットワークまたはインターネットによって、または、ダイレクトな接続によって、セグメントノード114a〜nの各々へ接続される。それに加えて、セグメントノード114a〜nの各々は、1つまたは複数の他のセグメントノードへ接続され得る。マスタノード110は、異常検出システム100に記憶されたデータの一部で動作するために各セグメントノードを割り当てる。
【0019】
各データ部分は、一般に、主題システムにおけるユーザによるユーザ挙動データの集合である。セグメントノード114a〜nによる並列処理を導入するために、各異なるユーザのためにすべてのユーザ挙動データが、単一の部分に記憶され得る。しかしながら、単一のセグメントノードが、特定のユーザのためのすべてのユーザ挙動データを取得し得るように、セグメントノード114a〜nはまた、情報を共有するために、互いに通信し得る。
【0020】
ユーザ挙動データは、主題システムにおけるリソースにアクセスしているユーザを表すデータである。たとえば、データは、ユーザが、サーバ、ウェブサイト、ウェブページ、ファイル、ディレクトリ、データベース、または、主題システムにおける他の任意のアクセス可能なリソースへ何回アクセスしたのかを表し得る。
【0021】
リソースにアクセスしているユーザの各インスタンスは、たとえば、アクセス記録によって、ユーザ挙動データにおいて表される。アクセス記録は、リソースを説明する情報、ユーザ、および、リソースがアクセスされた日時を含み得る。ユーザ挙動データはまた、アグリゲートされたアクセス記録を含み得る。たとえば、ユーザ挙動データは、各ユーザについて、特定の期間中、各リソースが何回アクセスされたのかを表すデータを含み得る。
【0022】
システム100は、任意の適切なフォーマットで、何百万または何十億ものアクセス記録を記憶し得る。たとえば、システムは、ファイルシステムにおけるファイルとして、または、ファイルシステムにおけるファイルにおけるデータのラインまたは行として、または、データベースにおける記録として、各アクセス記録を記憶し得る。アクセス記録は、インデクスされ得る。
【0023】
マスタノード110は、たとえばセグメントノード114a〜nのように、N個のセグメントノードに処理を分割し得る。セグメントノードは、たとえば、Hadoop File System(HDFS)を実施するシステムのような、基礎をなす分散記憶システムにおけるデータノードと通信することによって、アクセス記録を取得し得る。データは、一般に、多数の記憶デバイス間で区分され、任意の適切なキー値記憶サブシステムによって体系化され得る。たとえば、データ部分は、たとえば、超並列処理(MPP)データベースの一部として、多数の記憶デバイス間に分散されたリレーショナルデータベースのテーブル区分であり得る。データ部分はまた、たとえば、キー値ペアによって、データを異なる列ファミリに体系化し、多数の記憶デバイスにわたって分散されたHadoop Database(HBase)におけるように、分散された、非リレーショナルなデータベースの一部として記憶され得る。データ部分はまた、セグメントノード114a〜nによってローカルに記憶されるように区分され得る。
【0024】
図1Aに例示された例示的な異常検出システム100では、マスタノード110は、基礎をなす分散記憶システムの第1の記憶サブシステム132aに記憶された第1のユーザのグループのためのアクセス記録142aに関して動作するために、セグメントノード114aを割り当てた。同様に、マスタノード110は、第2の記憶サブシステム132bに記憶されたアクセス記録142bに関して動作するために、セグメントノード114bを割り当て、マスタノード110は、第Nの記憶サブシステム132nに記憶されたアクセス記録142nに関して動作するために、セグメントノード114nを割り当てた。
【0025】
図1Bは、セグメントノード114の図解である。システムにおけるセグメントノード114a〜nの各々は、ユーザ毎のモデルを並列的に計算する。言い換えれば、システムは、主題システムの各ユーザのために、1つまたは複数の異なるモデルを生成する。
【0026】
各セグメントノード114は、マスタノードによって割り当てられたユーザID145を受信するセグメントノード114にインストールされた異常検出ソフトウェアを実行させる。異常検出ソフトウェアは、その後、基礎をなす記憶サブシステムから、ユーザID145に対応するユーザのユーザアクセス記録142を取得し、どのアクセス記録142が訓練データであり、どのアクセス記録がテストデータであるのかを判定する。いくつかの個々のアクセス記録は、訓練データとテストデータとの両方として使用され得る。
【0027】
一般に、テストデータは、最近の期間、ユーザによってアクセスされたリソースを示す表示を含み、訓練データは、テストデータの期間の前の多数の期間、アクセスされたリソースを表す表示を含む。たとえば、期間が、その年の週であれば、テストデータは、最も直近の週の間にアクセスされたリソースを示す表示を含み得、訓練データは、前月または前年中にアクセスされたリソースを示す表示を含み得る。テストデータに対応する期間は、テスト期間と称され得る。
【0028】
しかしながら、テストデータは、直近の期間を表す必要はない。たとえば、このシステムは、過去に発生した異常挙動を識別するために、任意の適切な期間のアクセス記録をテストデータとして使用し得る。
【0029】
セグメントノード114にインストールされた異常検出ソフトウェアは、ユーザのアクセス記録142が、ユーザによる異常挙動を反映しているか否かを判定するために、各セグメントノードにインストールされた1つまたは複数のモデリングエンジン180、182、および184を活用する。モデリングエンジン180、182、および184のすべて、または、モデリングエンジン180、182、および184のいくつかのみが、任意の特定のセグメントノードにインストールされ得る。
【0030】
セグメントノード114は、テストデータのうちのいくつかを訓練データとして再サンプルする再サンプリングモデルエンジン180を使用し得る。再サンプリングモデルは、
図2を参照して、より詳細に以下に説明される。セグメントノード114はまた、ユーザによってアクセスされたファイルタイプに基づいてトピックモデルを生成する、トピックモデルエンジン182をも使用し得る。トピックモデルは、
図3を参照して、より詳細に以下に説明される。セグメントノード114はまた、パスグラフモデルエンジン184を使用し得る。これは、異常挙動を判定するために、訓練データおよびテストデータからパスグラフを構築する。パスグラフは、
図4〜
図7を参照して、より詳細に以下に説明される。
【0031】
このシステムは、ユーザアクセス記録142のテストデータを、異常または非異常として分類するために、モデリングエンジン180、182、および184を使用し得る。テストデータが異常として分類されると、セグメントノード114は、異常挙動通知155を生成し得、たとえば、マスタノード110へ戻すように、システムにおける別のノードへこの通知155を提供し得る。マスタノード110は、その後、この通知を、ユーザデバイス102へ伝搬し得る。
【0032】
図2は、再サンプリングモデルを使用して、ユーザアクセス記録を異常として分類するための例示的な処理のフローチャートである。一般に、このシステムは、多数回再サンプルした場合、テストデータが、ユーザのアクセス挙動の初期統計モデルの特性的特徴にどれくらい影響を与えたのかを判定する。例示的な処理は、1つまたは複数のコンピュータの、適切にプログラムされたシステムによって実行されるものとして説明されるであろう。
【0033】
このシステムは、ユーザのアクセス記録を取得する(210)。上述されるように、アクセス記録は、多数の期間の各々の間、どのリソースがユーザによってアクセスされたのかを示す。
【0034】
このシステムは、ユーザのアクセス記録を示す表示を生成する(220)。いくつかの実施では、この表示は、ベクトルまたは行列であり、このシステムは、いくつかの期間の各々のために、ベクトルを生成する。ベクトルにおける各位置は、主題システムにおけるリソースを表し、ベクトルにおける各値は、主題システムにおけるリソースにユーザがアクセスした回数を表し、これは、ベクトルにおける値の位置に対応する。
【0035】
このシステムは、訓練データを使用して、初期モデルを生成する(230)。上述されるように、訓練データは、前の期間のためのユーザのアクセス記録を示す表示を含む。
【0036】
特性を表すための任意の適切な統計モデルは、データセットに注目しているので、このシステムは、初期モデルを生成し得る。いくつかの実施では、システムは、データを行列として表し、ユーザのための訓練データの特性的特徴を示す表示を生成するために、たとえば、特異値分解(SVD)、主成分分析(PCA)、または非負行列因子分解(NMF)のような任意の適切な行列因数分解技術を使用する。
【0037】
たとえば、このシステムは、訓練データからの、アクセス記録ベクトルの行列Xを生成し得る。このシステムは、その後、Xの主成分を表す行列Tを生成するために、SVDを実行し得る。
【0038】
このシステムは、訓練データと、多数回サンプルされたテストデータとから、再サンプリングモデルを生成する(240)。テストデータを多数回再サンプルすることは、訓練データとテストデータとの差分を拡大する効果を有する。
【0039】
たとえば、再サンプリングモデルを生成するためにSVDを使用するのであれば、このシステムは、訓練データのすべてのベクトルと、テストデータのベクトルのN個のインスタンスとを使用し得る。言い換えれば、このシステムは、訓練データのベクトルと、テストデータのベクトルのN個のインスタンスとを含む行列X'を生成し得る。一般に、行列X'は、初期モデルのための行列Xよりも多くの列を含むであろう。このシステムは、その後、X'の主成分を表す行列T'を生成するために、SVDを実行し得る。
【0040】
このシステムは、初期モデルと再サンプリングモデルとを比較する(250)。このシステムは、たとえば、モデルの特性的特徴間の差分を計算することによって、初期モデルと再サンプリングモデルとがどれくらい異なるのかを判定するために、任意の適切な比較方法を使用し得る。SVDを使用するのであれば、このシステムは、初期モデルTのための主成分と、再サンプリングモデルT'のための主成分との間の角度を計算し得る。
【0041】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(260)。初期モデルと再サンプリングモデルとの差分は、テストデータが、初期モデルに対して、再サンプリングモデルにおいて、より劇的な効果を有する場合、常に大きくなるであろう。したがって、テストデータは、差分が大きい場合、異常となる可能性が高い。
【0042】
しかしながら、初期モデルと再サンプリングモデルとの差分が小さいのであれば、テストデータは、訓練データのみから生成される初期モデルに対して、最小のインパクトしか有さない。したがって、テストデータは、異常となる可能性は低い。
【0043】
したがって、このシステムは、両モデル間の差分が、しきい値を満足するか否かを判定し得、差分がしきい値を満足するのであれば、ユーザ挙動を異常として分類し得る。
【0044】
図3は、トピックモデルを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。この例示的な処理では、このシステムは、ユーザによってアクセスされたリソースに従うのではなく、ユーザによってアクセスされた関連するファイルタイプのグループに従って、主題システムにおけるユーザの挙動を表す。関連するファイルタイプのグループは、トピックとして表され得、テスト期間中に、ユーザが実質的に異なるファイルタイプにアクセスしたことをテストデータが示すのであれば、このシステムは、ユーザの挙動を異常として分類し得る。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムによって実行されるとして説明されるであろう。
【0045】
このシステムは、主題システムにおいてファイルからトピックを生成する(310)。このシステムは、トピックを生成し得、ここでは、各トピックが、個々のユーザのユーザアクセス記録において頻繁に共起するファイルタイプのグループを表す。典型的には、このシステムは、多くの異なるユーザからのユーザアクセス記録を使用してトピックを生成する。
【0046】
いくつかの実施では、このシステムは、ファイルのタイプを示すために、ファイルの拡張子を使用する。しかしながら、このシステムは、ファイルタイプを判定するために、システムにおけるファイルに関する他のメタデータを使用し得る。
【0047】
このシステムは、各ユーザを、ドキュメントとして、および、ユーザによってアクセスされた各ファイルタイプを、ドキュメントにおいて発生する用語として取り扱うことによって、任意の適切なトピックモデリング技術を使用し得る。このシステムは、主題システムにおいてユーザアクセスファイルを表すすべてのユーザアクセス記録にわたって、トピックモデリング技術を使用し得る。この結果は、その後、各々が、頻繁に発生するファイルタイプを表すトピックの数となる。このシステムは、発見された各トピックのためにユニークな識別子を割り当て得る。
【0048】
たとえば、このシステムは、Latent Dirichlet Allocation(LDA)を使用してK個のトピックを生成し得る。LDAは、入力パラメータとして、トピックの数Kを採用し、K個のトピックの各々のための確率分布を生成する。各確率分布は、トピックに割り当てられたファイルタイプにアクセスしたユーザによってアクセスされている特定のファイルタイプへ、確率を割り当てる。
【0049】
このシステムは、Kのための候補値にわたって反復することと、モデルの複雑さを計算することとによって、Kのための値を選択し得る。このシステムは、モデルにおけるトピックの数と、モデルの複雑さとをバランスさせるKのための値を選択し得る。
【0050】
このシステムは、ユーザのアクセス記録を取得する(320)。アクセス記録は、ユーザによってアクセスされた電子ファイルと、ユーザによってアクセスされたファイルのファイルタイプ情報とを示し得る。
【0051】
このシステムは、ユーザのアクセス記録を示す表示を生成する(330)。このシステムは、いくつかの期間の各々のためのベクトルを生成し得る。ベクトルの各要素は、K個のトピックのうちの1つを表し、ベクトルにおける各値は、対応するトピックの各々に属するファイルタイプへユーザがアクセスした回数を表す。いくつかの実施では、各要素は、対応するトピックの各々に属するファイルタイプにユーザがアクセスした各期間における日の数を表す。
【0052】
このシステムは、テストデータを再構築するために、訓練データから生成される初期SVDモデルを使用する(340)。上述したように、このシステムは、訓練データと、たとえばSVDまたはPCAのようなテストデータとの特性的特徴を表すために、任意の適切な統計モデルを使用し得る。
【0053】
このシステムは、同様に、テストデータが訓練データへ多数回追加された場合、初期SVDモデルが、再サンプリングモデルに対してどれくらい変化したのかを判定するために、
図2を参照して上述された再サンプリング技術を使用し得る。
【0054】
いくつかの実施では、このシステムは、モデルを比較するために、特異値分解(SVD)を使用し得る。たとえば、このシステムは、訓練データからの行列Xを生成し得る。ここで、各列は、訓練データにおける期間を表し、各行は、K個のトピックのうちの1つを表す。このシステムは、その後、行列Yを生成するためにSVDを実行し得る。このシステムは、その後、Yから、先頭のk個の右単一列ベクトルVを、訓練期間中、ユーザの挙動を表すものとして選択し得る。
【0055】
このシステムは、その後、
D=||x
i+1-V×(V
T×x
i+1)||
に従って距離Dを計算することによって、訓練データのベクトルとして表されるテストデータを比較し得る。
【0056】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(350)。この差分がしきい値を満足するのであれば、このシステムは、ユーザ挙動を異常として分類し得る。そうではない場合、このシステムは、ユーザ挙動を、非異常として分類し得る。
【0057】
図4は、パスグラフを使用してユーザ挙動を異常として分類するための例示的な処理のフローチャートである。パスグラフは、関連する期間中、主題システムにおけるリソースへユーザがどのようにナビゲートしたのかを示す表示である。テスト期間においてパスグラフが著しく変化するのであれば、このシステムは、ユーザ挙動を異常として分類し得る。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムにおって実行されるものとして説明されるであろう。
【0058】
このシステムは、訓練データを使用して、初期パスグラフを生成する(410)。パスグラフは、主題システムにおいてユーザによってアクセスされたリソース間の関係を表す。
【0059】
パスグラフは、主題システムにおいてユーザによってアクセスされたリソースを表すノードを含む。たとえば、パスグラフのノードは、ファイルシステムにおけるフォルダおよびファイルを表し得る。パスグラフのノードはまた、主題システムによって維持されたウェブページをも表し得る。
【0060】
パスグラフは、あるノードから別のノードへアクセスしているユーザを表すための、2つのノード間のリンクを含む。言い換えれば、パスグラフは、第1のノードによって表される第1のリソースを訪問し、その後、第2のノードによって表される第2のリソースを訪問するユーザを表すためのリンクを含む。したがって、これらリンクは、フォルダおよびサブフォルダの関係、ウェブページ間のリンク、ファイルシステムにおける象徴的なリンクまたはショートカット、または、別のリソースからあるリソースへアクセスするための他の任意の適切な方法を表し得る。
【0061】
図5Aは、初期パスグラフを例示する。この例では、パスグラフのノードは、ファイルシステムにおけるフォルダを表し、リンクは、親フォルダからサブフォルダへアクセスしているユーザを表す。
【0062】
初期パスグラフは、「ホーム」ディレクトリを表すルートノード510を有する。初期パスグラフはまた、「ホーム」ディレクトリのサブフォルダを表す他のノード520、522、および530を含む。
【0063】
ノード510とノード520との間のリンクは、ユーザが、「ホーム」ディレクトリを訪問し、その後、「ホーム」ディレクトリから「フォルダB」を訪問したことを表す。同様に、ノード520とノード530との間のリンクは、ユーザが、「フォルダ」ディレクトリから「サブフォルダC」ディレクトリを訪問したことを表す。
【0064】
したがって、このシステムが、訓練データを使用して初期パスグラフを生成する場合、結果として得られる初期パスグラフは、ユーザによってアクセスされたリソースを表すノードと、ユーザがそれらリソースへどのようにナビゲートしたのかを表すリンクとを含む。
【0065】
このシステムはまた、初期パスグラフを生成した場合、ユーザのピアからのデータを含み得る。いくつかのインスタンスでは、初期パスグラフを、ユーザのピアからのデータとともに使用することは、異常挙動の誤った肯定的な検出を低減し得る。
【0066】
ユーザのピアは、一般に、アクセスされたリソースに関して、ユーザとの実質的なオーバラップを有する主題システムにおけるユーザである。たとえば、ユーザのピアは、組織内の同じチームの他のメンバ、または、同じ部署、地域、または会社における他の従業員であり得る。
【0067】
いくつかの実施では、このシステムは、少なくとも、しきい値量のリソースオーバラップを有する他のユーザを識別することによって、ユーザのピアを判定する。言い換えれば、このシステムは、他のどのユーザが、考慮されたユーザと同様に、たとえば、同じリソースの少なくとも10%、50%、または80%のように、少なくともしきい値量のリソースへアクセスしたのかを計算するために、主題システムにおけるすべてのユーザのための訓練データを使用する。
【0068】
このシステムはまた、主題システムを所有する組織のための組織データを使用し得る。たとえば、このシステムは、同じチームまたは部署の一部であるユーザを、ピアとして指定し得る。このシステムはまた、組織内の同じまたは類似の役割を有するユーザを、ピアであるべきと指定し得る。
【0069】
ユーザのピアを識別した後、このシステムは、ユーザおよび、ユーザのピアのすべてのための訓練データを使用して、初期パスグラフを生成し得る。
【0070】
図4に図示されるように、このシステムは、テストデータを使用して、テストパスグラフを生成する(420)。テストパスグラフは、テストデータから生成されたパスグラフである。上述されるように、テストデータは、最も直近の期間中、ユーザによってアクセスされたリソースを表し得る。したがって、テストパスグラフは、テストデータによって表される期間中、ユーザが、主題システムにおけるリソースへどのようにナビゲートしたのかを表す。
【0071】
図5Bは、例示的なテストパスグラフを例示する。テストパスグラフは、2つの新たなノードであるノード540および542と、破線によって表される、対応する新たなリンクとを含む。新たなノード540および542は、テスト期間中、ユーザによってアクセスされるリソースを表すが、訓練期間中は表さない。
【0072】
図4に図示されるように、このシステムは、初期パスグラフをテストパスグラフと比較する(430)。このシステムは、初期パスグラフをテストパスグラフと比較するために様々な方法を使用し得る。一般に、このシステムは、初期パスグラフとテストパスグラフとの間のオーバラップの尺度を計算する。初期パスグラフと著しくオーバラップするテストパスグラフは、正常なユーザ挙動を示す。一方、初期パスグラフとオーバラップせず、多くのノードおよびエッジを有するテストパスグラフは、異常的なユーザ挙動を示す。
【0075】
に従って、初期パスグラフG1と、テストパスグラフG2との間のジャカール距離Dを計算し得る。ここで、
【0077】
は、G1におけるノードのセットと、G2におけるノードのセットとの交差の濃度を表し、
【0079】
は、G1におけるノードのセットと、G2におけるノードのセットとの結合の濃度を表す。
【0080】
いくつかの実施では、このシステムは、リソースへの重みに従って、重み付けられたジャカール距離を計算する。このシステムは、様々な要因に基づいて、リソースへ重みを割り当て得る。たとえば、このシステムは、たとえば、機密の企業または従業員データのような機密情報を含むリソースへ、より高い重みを割り当て得る。したがって、異常挙動の検出は、より高い重みを有するフォルダにアクセスしているユーザに対して、より感度が高くなる。
【0081】
このシステムはまた、階層的なリソースの関係に基づいて、重みを割り当て得る。たとえば、リソースが、フォルダおよびサブフォルダを表すのであれば、このシステムは、フォルダのサブフォルダよりも、フォルダへ、より高い重みを割り当て得る。これは、異常挙動の検出を、ユーザがすでにアクセスしたフォルダの新たなサブフォルダにユーザが単にアクセスした状況に対して、より感度を低くする。いくつかの実施では、このシステムは、第1の重みを、階層におけるしきい値数のレベルよりも上にあるすべてのリソースへ割り当て、より小さな第2の重みを、他のすべてのリソースへ割り当てる。たとえば、このシステムは、第1の重みを、ファイルシステムのルートディレクトリと、ルートディレクトリの下方最大3レベルのすべてのディレクトリとに割り当て得る。他のすべてのサブフォルダについて、このシステムは、第2の重みを割り当て得る。
【0082】
このシステムはまた、このシステムにおけるリソースの世代に基づいて重みを割り当て得る。いくつかの状況では、異常挙動は、古いリソースよりも、新たに生成されたリソースを含む可能性がより高い。したがって、このシステムは、新たなリソースへ割り当てられる重みを増加させ得、リソースが古くなると、リソースのための重みを減少させ得る。
【0083】
このシステムはまた、主題システムにおけるリソースの人気の尺度に基づいて、重みを割り当て得る。たとえば、このシステムは、主題システムにおいて、多くのユーザによってアクセスされた人気のあるリソースへ割り当てられる重みを低下させ得る。このシステムは同様に、たとえば、人気のあるフォルダのサブフォルダのように、人気のあるリソースのすべての子リソースの重みを低下させ得る。
【0084】
システムにおけるリソースへ重みを割り当てた後、このシステムは、
【0086】
に従って、重み付けられたジャカール距離WDを計算し得る。ここで、分子項は、G1とG2との交差において発生するすべてのノードのための重みの総和を表し、分母項は、G2において発生するすべてのノードのための重みの総和を表す。
【0087】
このシステムは、この比較に基づいて、テスト期間におけるユーザ挙動を、異常または非異常として分類する(440)。初期パスグラフとテストパスグラフとの間の計算された距離が、大きいのであれば、ユーザ挙動は、異常である可能性がより高い。計算された距離が小さいのであれば、ユーザ挙動は、異常である可能性がより低い。したがって、このシステムは、計算された距離がしきい値を満足するのであれば、ユーザ挙動を異常として分類し得る。
【0088】
異常イベントは典型的に、主題システムの法医学チームによるフォローアップを必要とする。したがって、このシステムは、異常ケースを調査するために、このチームの予期される有用性に基づいて、各テスト期間のためのしきい値を調節し得る。
【0089】
たとえば、
図5Aに例示される初期パスグラフと、
図5Bに例示されるテストパスグラフとの間のジャカール距離は、比較的低い0.333である。したがって、このシステムは、ユーザ挙動が異常であると考慮しないことがあり得る。
【0090】
図5Cは、別の例示的なテストパスグラフを例示する。テストパスグラフは、6つの新たなノード540、542、544、550、552、および554と、破線によって表される対応する新たなリンクとを含む。
【0091】
図5Aに例示された初期パスグラフと、
図5Cに例示されたテストパスグラフとの間のジャカール距離は、比較的高い0.6である。したがって、このシステムは、ユーザ挙動が異常であると考慮し得る。
【0092】
図6は、主題システムにおいて、最も人気のあるリソースを判定するための例示的な処理のフローチャートである。このシステムは、異常またはそうではないユーザ挙動の判定を行う場合、どのリソースが人気があるのかを考慮し得る。別の方法で人気があるリソースへアクセスすることを除いて、ユーザの挙動が正常であれば、システムは、ユーザ挙動が、異常であるとフラグすることを回避する。この処理は、1つまたは複数のコンピュータの適切にプログラムされたシステムによって実行されるとして説明されるであろう。
【0093】
このシステムは、ハイブリッドユーザ/リソースグラフを生成する(610)。ハイブリッドグラフは、2つのタイプのノード、すなわち、ユーザを表すユーザノードと、主題システムにおけるリソースを表すリソースノードとを有する。ハイブリッドグラフはまた、2つのタイプの対応するリンク、すなわち、主題システムにおけるリソースの構造を表すリソース-リソースリンクと、主題システムにおけるリソースにアクセスしているユーザを表すユーザ-リソースリンクとを有する。
【0094】
図7は、例示的なハイブリッドグラフを例示する。ハイブリッドグラフは、
図5Aに図示される例示的なグラフと同じリソース構造を有し、ファイルシステムにおけるフォルダを表す4つのリソースノード710、720、722、および730を有する。
【0095】
ハイブリッドグラフは、リソースノード間のリソース-リソースリンクを有する。これは、システムにおけるリソースの構造を表す。この例では、リソース-リソースリンクは、ディレクトリ取り込みを表す。
【0096】
ハイブリッドグラフはまた、システムにおける異なるユーザを表す2つのユーザノード760および762を含む。ハイブリッドグラフは、各ユーザがどのリソースにアクセスしたのかを表すユーザ-リソースリンクを有する。
【0097】
この例では、ホームフォルダは、他のフォルダよりもより多くのユーザによってアクセスされたので、ユーザ-リソースリンクは、ホームフォルダが、他のフォルダよりもより人気のあることを示す可能性が高い。
【0098】
図6に図示されるように、このシステムは、ハイブリッドグラフに従って、このシステムにおけるリソースのためのスコアを計算する(620)。一般に、このスコアは、グラフによって表される関係に基づいて、このシステムにおけるリソースのための人気の尺度を表す。したがって、より多くのユーザによってアクセスされたリソースは、より高いスコアを有し、より少ないユーザによってアクセスされたリソースは、より低いスコアを有するであろう。
【0099】
いくつかの実施では、このシステムは、ノードにおいて終了するリソース-リソースリンクを介してランダムナビゲーションを実行するユーザの可能性を表す第1の成分と、子ノードの親ノードによって表されるリソースから、子ノードによって表されるリソースに達するユーザの可能性を表す第2の成分とを有するスコアを計算する。
【0100】
このシステムは、以下の式に従って、各ノードS(i)のスコアを反復的に計算し得る。
【0102】
ここで、各ノードjは、別のユーザノード、または、ノードiへのリンクを有する別のリソースノードを表し、Nは、ハイブリッドグラフにおけるノードの数であり、dは、減衰率である。どのような出射端をも有さないノードについて、システムは、グラフにおけるN個のすべてのノード間に等しくスコアを分配し得る。
【0103】
このシステムは、最も高いスコアを有するリソースノードを選択する(630)。このシステムは、計算されたスコアによって、リソースノードをランク付けし得、最も高くランク付けされたリソースノードを、このシステムにおいて最も人気のあるノードとして選択し得る。このシステムは、最も高くランク付けされたリソースノードのうち、あらかじめ決定された数のリソースノードを選択し得るか、または、あるいは、このシステムは、しきい値を満足するスコアを有するすべてのリソースノードを選択し得る。
【0104】
このシステムは、選択されたリソースノードへのパスを、すべての初期パスグラフへ追加する(640)。最も人気のあるノードを判定した後、このシステムは、最も人気のあるノードのすべてへのパスを、主題システムにおけるすべてのユーザのための初期パスグラフへ追加し得る。そうすることによって、このシステムは、あたかもユーザが、最も人気のあるフォルダの各々にアクセスしたかのように、各ユーザを取り扱う。ピアベースのアプローチを使用する場合、このシステムは、あたかもユーザのピアが、最も人気のあるフォルダの各々にアクセスしたかのように、ユーザのピアの各々を取り扱う。
【0105】
最も人気のあるフォルダへパスを追加することによって、ユーザが頻繁に訪問しないフォルダであるものの、逆にこのシステムにおけるユーザの間で人気のあるフォルダに、ユーザが訪問することによって生成される、誤った肯定の量を、このシステムは低減し得る。
【0106】
この明細書において説明された主題および機能的工程の実施形態は、デジタル電子回路において、有形的に具体化されたコンピュータソフトウェアまたはファームウェアにおいて、この明細書において開示された構成およびその構成的等価物を含むコンピュータハードウェアにおいて、または、それらのうちの1つまたは複数の組合せにおいて実施され得る。この明細書において説明された主題の実施形態は、データ処理装置による実行のために、または、データ処理装置の工程を制御するために、有形の非一時的なプログラムキャリアにおいてエンコードされた、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。あるいは、または、それに加えて、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信のための情報をエンコードするために生成された、たとえば、マシンによって生成された電気、光、または電磁信号のような人工的に生成された伝搬信号においてエンコードされ得る。コンピュータ記憶媒体は、マシン読取可能な記憶デバイス、マシン読取可能な記憶基板、ランダムまたはシリアルなアクセスメモリデバイス、または、これらのうちの1つまたは複数の組合せであり得る。しかしながら、コンピュータ記憶媒体は、伝搬された信号ではない。
【0107】
「データ処理装置」という用語は、例によれば、プログラマブルプロセッサ、コンピュータ、または、マルチプロセッサまたはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、これらの1つまたは複数の組合せを構成するコードを含み得る。
【0108】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとしても称され得るか、または説明される)コンピュータプログラムは、コンパイルまたはインタプリタされた言語、または、宣言型または手続型言語を含む任意の形態のプログラミング言語で記述され得、スタンドアロンプログラムとして、または、モジュール、構成要素、サブルーチン、またはコンピューティング環境における使用のために適切な他のユニットを含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、対応する必要はない。プログラムは、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトのように、他のプログラムまたはデータを保持するファイルの一部に、問題となっているプログラムに専用の単一のファイルに、または、たとえば、1つまたは複数のモジュール、サブプログラム、または、コードの一部を記憶するファイルのような、多数の調整されたファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータにおいて、または、1つのサイトにおいて配置された、または、多数のサイトにわたって分散され、通信ネットワークによって相互接続された多数のコンピュータにおいて実行されるように展開され得る。
【0109】
この明細書において使用されるように、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供する、ソフトウェアによって実施される入力/出力システムを称する。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトのような、エンコードされた機能のブロックであり得る。各エンジンは、たとえば、サーバ、モバイル電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子ブックリーダ、ラップトップまたはデスクトップコンピュータ、PDA、スマートフォン、または、他の固定式またはポータブルデバイスのように、1つまたは複数のプロセッサおよびコンピュータ読取可能な媒体を含む、任意の適切なタイプのコンピューティングデバイスにおいて実施され得る。それに加えて、これらエンジンのうちの2つ以上は、同じコンピューティングデバイスにおいて、または、異なるコンピューティングデバイスにおいて実施され得る。
【0110】
この明細書において説明された処理および論理フローは、入力データに対して動作し、出力を生成することによって、機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。処理および論理フローはまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)のような、専用論理回路によって実行され得、装置はまた、たとえば、FPGAまたはASICのような、専用論理回路によって実施され得る。
【0111】
コンピュータプログラムの実行のために適切なコンピュータは、汎用または専用のマイクロプロセッサ、または、その両方、または、他の任意の種類の中央処理装置を含み、例によれば、汎用または専用のマイクロプロセッサ、または、その両方、または、他の任意の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取専用メモリまたはランダムアクセスメモリまたはこれら両方から命令およびデータを受信するであろう。コンピュータの必須要素は、命令を実行または実施するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、たとえば磁気、磁気光ディスク、または光ディスクのように、データを記憶するための1つまたは複数の大容量デバイスを含むか、または、これらからデータを受信またはこれらへのデータの伝送、またはその両方のために動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、いくつか名前を挙げると、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または、たとえばユニバーサルシリアルバス(USB)フラッシュドライブのようなポータブル記憶デバイスのような別のデバイスに埋め込まれ得る。
【0112】
コンピュータプログラム命令およびデータを記憶するために適切なコンピュータ読取可能な媒体は、例によれば、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイスと、たとえば、内部ハードディスクまたはリムーバブルディスクのような磁気ディスクと、磁気光ディスクと、CD ROMディスクおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補強され得るか、または、専用論理回路へ組み込まれ得る。
【0113】
ユーザとのインタラクションを提供するために、この明細書において説明された主題の実施形態は、たとえば、CRT(陰極放電管)モニタ、LCD(液晶ディスプレイ)モニタ、またはOLEDディスプレイのように、ユーザへ情報を表示するためのディスプレイデバイスのみならず、たとえば、キーボード、マウス、または、存在検知ディスプレイまたは他の面のように、コンピュータへ入力を提供するための入力デバイスをも有するコンピュータにおいて実施され得る。他の種類のデバイスもまた、ユーザとのインタラクションを提供するために使用され得、たとえば、ユーザへ提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックのような任意の形態の知覚的フィードバックであり得、ユーザからの入力は、音響、発話、または触覚入力を含む任意の形態で受信され得る。それに加えて、たとえば、ウェブブラウザから受信したリクエストに応じて、ユーザのクライアントデバイスにおけるウェブブラウザへウェブページを送信することによって、コンピュータは、ユーザによって使用されるデバイスへリソースを送信し、このデバイスからリソースを受信することによって、ユーザとインタラクトし得る。
【0114】
この明細書において説明された主題の実施形態は、たとえばデータサーバのようなバックエンド構成要素を含む、または、たとえばアプリケーションサーバのようなミドルウェア構成要素を含む、または、たとえば、この明細書において説明された主題の実施とユーザがインタラクトし得るグラフィックユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータのようなフロントエンド構成要素、または、1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実施され得る。システムの構成要素は、たとえば通信ネットワークのようなデジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)と、たとえばインターネットのような広域ネットワーク(「WAN」)とを含む。
【0115】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータにおいて起動し、互いにクライアント-サーバ関係を有している、コンピュータプログラムによって生じる。
【0116】
この明細書は、多くの具体的な実施詳細を含んでいるが、これらは、任意の発明の、または、特許請求され得るものの範囲に対する限定としてではなく、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。個別の実施形態のコンテキストにおいてこの明細書において説明されているいくつかの特徴はまた、単一の実施形態における組合せにおいても実施され得る。逆に、単一の実施形態のコンテキストにおいて説明されている様々な特徴はまた、多数の実施形態において個別に、または、任意の適切な部分組合せにおいても実施され得る。その上、特徴は、いくつかの組合せにおいて動作するものとして上述され得、そのようなものとして最初に特許請求されているが、特許請求された組合せからの1つまたは複数の特徴が、いくつかのケースでは、組合せから削除され得、特許請求された組合せは、部分組合せまたは部分組合せの変形を対象とされ得る。
【0117】
同様に、工程は、特定の順序で図面に描写されているが、これは、所望される結果を達成するために、そのような工程が、図示された特定の順序または順番で実行されることも、または、例示されたすべての工程が実行されることも、必要としているとして理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利であり得る。その上、上述された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要としているとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品にともに統合され得るか、または、多数のソフトウェア製品へパッケージされ得ることが理解されるべきである。
【0118】
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記述された動作は、異なる順序で実行され得、なお、所望される結果を達成し得る。一例として、添付図面に描写された処理は、所望される結果を達成するために、必ずしも、図示された特定の順序、または順番を必要とする訳ではない。いくつかの実施では、マルチタスクおよび並列処理が有利であり得る。