(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】ユーザエンティティの正規化および関連付け
(51)【国際特許分類】
G06F 21/55 20130101AFI20241029BHJP
【FI】
G06F21/55 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024505476
(86)(22)【出願日】2022-10-06
(85)【翻訳文提出日】2024-01-29
(86)【国際出願番号】 IB2022059544
(87)【国際公開番号】W WO2023067425
(87)【国際公開日】2023-04-27
(32)【優先日】2021-10-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523015600
【氏名又は名称】パロ アルト ネットワークス (イスラエル アナリティクス) リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】ライマー,ネタネル
(72)【発明者】
【氏名】マイヤー,アビアド
(72)【発明者】
【氏名】ノイマン,ヤロン
(72)【発明者】
【氏名】アロン,ヨナタン
(57)【要約】
方法、装置、および電算プログラム製品は、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別することによってコンピュータシステムを保護することを含む、本発明の実施形態を実施する。ユーザ識別子のうち第1識別子を使用して実行される第1イベントが検出される。ユーザ識別子のうちの第1ユーザ識別子とは異なる、ユーザ識別子のうちの第2ユーザ識別子を使用して実行された第2イベントを検出すると、第1イベントおよび第2イベントの組み合わせに応答して、アラートを発行することができる。
【特許請求の範囲】
【請求項1】
コンピュータシステムを保護するための方法であって、
プロセッサによって、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別するステップと、
前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出するステップと、
前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出するステップと、
前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行するステップと、
を含む、方法。
【請求項2】
前記単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別する前記ステップは、
前記第1イベントおよび前記第2イベントを含むイベントのセットを収集すること、
前記セット内のイベントからそれぞれのユーザ識別子を抽出すること、
抽出された前記ユーザ識別子をそれぞれのアカウントにマッピングすること、および、
前記アカウントをそれぞれのユーザエンティティに関連付けること、
を含み、
前記単一のユーザエンティティは、複数のユーザエンティティのうち1つを含む、
請求項1に記載の方法。
【請求項3】
所与の抽出されたユーザ識別子を所与のアカウントにマッピングすることは、
所与のユーザエンティティを特定のフォーマットに正規化することを含み、
前記所与のアカウントは、前記正規化されたユーザエンティティを含む、
請求項2に記載の方法。
【請求項4】
前記単一のユーザエンティティは、1つ以上のアカウントに関連付けられる、
請求項2に記載の方法。
【請求項5】
複数のユーザ識別子は、前記単一のユーザエンティティの所与のアカウントにマッピングされる、
請求項2に記載の方法。
【請求項6】
第1イベントを検出する前記ステップは、
第1ネットワーク化エンティティ上で前記第1イベントを検出すること、を含み、
第2イベントを検出する前記ステップは、
前記第1ネットワーク化エンティティとは異なる第2ネットワーク化エンティティ上で前記第2イベントを検出すること、を含む、
請求項1乃至5いずれか一項に記載の方法。
【請求項7】
第1イベントを検出する前記ステップは、
第1期間の最中に複数の第1イベントを検出すること、および、前記複数の第1イベントに応答して、プロファイルを生成すること、を含み、
第2イベントを検出する前記ステップは、
前記第1期間に続く第2期間の最中に1つ以上の第2イベントを検出すること、を含み、
前記第1イベントおよび前記第2イベントの組み合わせは、前記1つ以上の第2イベントが前記プロファイルに従っていないことを検出すること、を含む、
請求項1乃至5いずれか一項に記載の方法。
【請求項8】
前記第1イベントは、前記単一のユーザエンティティの時間ベースのステータスを含み、かつ、
前記第2イベントは、前記時間ベースのステータスに従わない、
請求項1乃至5いずれか一項に記載の方法。
【請求項9】
コンピュータネットワークを保護するための装置であって、
ネットワークインターフェイスカード(NIC)と、
少なくとも1つのプロセッサと、を含み、
前記プロセッサは、
単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別し、
前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出し、
前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出し、かつ、
前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行する、
ように構成されている、装置。
【請求項10】
所与のプロセッサは、
前記第1イベントおよび前記第2イベントを含むイベントのセットを収集すること、
前記セット内のイベントからそれぞれのユーザ識別子を抽出すること、
抽出された前記ユーザ識別子をそれぞれのアカウントにマッピングすること、および、
前記アカウントをそれぞれのユーザエンティティに関連付けること、
によって、前記単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別するように構成されており、
前記単一のユーザエンティティは、複数のユーザエンティティのうち1つを含む、
請求項9に記載の装置。
【請求項11】
所与のプロセッサは、所与のユーザエンティティを特定のフォーマットに正規化することによって、所与の抽出されたユーザ識別子を所与のアカウントにマッピングするように構成されており、
前記所与のアカウントは、前記正規化されたユーザエンティティを含む、
請求項10に記載の装置。
【請求項12】
前記単一のユーザエンティティは、1つ以上のアカウントに関連付けられる、
請求項10に記載の装置。
【請求項13】
複数のユーザ識別子は、前記単一のユーザエンティティの所与のアカウントにマッピングされる、
請求項12に記載の装置。
【請求項14】
所与のプロセッサは、
ネットワークの第1ネットワーク化エンティティ上で前記第1イベントを検出することによって、前記第1イベントを検出し、かつ、
前記第1ネットワーク化エンティティとは異なる第2ネットワーク化エンティティ上で前記第2イベントを検出することによって、前記第2イベントを検出する、
ように構成されている、
請求項9乃至13いずれか一項に記載の装置。
【請求項15】
所与のプロセッサは、第1期間の最中に複数の第1イベントを検出することによって、前記第1イベントを検出するように構成されており、
前記所与のプロセッサは、さらに、前記複数の第1イベントに応答して、プロファイルを生成するように構成されており、
前記所与のプロセッサは、前記第1期間に続く第2期間の最中に1つ以上の第2イベントを検出することによって、第2イベントを検出するように構成されており、かつ、
前記第1イベントおよび前記第2イベントの組み合わせは、前記1つ以上の第2イベントが前記プロファイルに従っていないことを検出すること、を含む、
請求項9乃至13いずれか一項に記載の装置。
【請求項16】
前記第1イベントは、前記単一のユーザエンティティの時間ベースのステータスを含み、かつ、
前記第2イベントは、前記時間ベースのステータスに従わない、
請求項9乃至13いずれか一項に記載の装置。
【請求項17】
コンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ命令を含み、非一時的コンピュータ可読媒体に保管されており、
前記コンピュータ命令は、プロセッサによって実行されると、前記コンピュータに、
単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別し、
前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出し、
前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出し、かつ、
前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行する、
ようにさせる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コンピュータセキュリティおよびネットワークに関する。そして、特には、イベントログ内のユーザ識別子をユーザエンティティに関連付けること、および、ログ内のイベントに基づいてユーザエンティティプロファイルを生成することに関する。
【背景技術】
【0002】
多くのコンピュータおよびネットワークシステムにおいては、セキュリティ脅威の絶えず増大する範囲を検出し、かつ、撃退するために、多層のセキュリティ装置およびソフトウェアが配備されている。最も基本的なレベルにおいて、コンピュータは、不正プログラムがコンピュータ上で実行されているのを防止するために、アンチウイルスソフトウェアを使用する。ネットワークレベルにおいて、侵入検出および防止システムは、マルウェアがネットワークを通じて拡散することを検出および防止するために、ネットワークトラフィックを分析し、かつ、制御する。
【0003】
上記の説明は、この分野における関連技術の一般的な概要として提示されているものであり、そして、それが含む情報のいずれかが本特許出願に対する先行技術を構成することを認めるものと解釈されるべきではない。
【発明の概要】
【0004】
本発明の一つの実施形態に従って、コンピュータシステムを保護するための方法が提供される。本方法は、プロセッサによって、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別するステップと、前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出するステップと、前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出するステップと、前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行するステップとを含む。
【0005】
いくつかの実施形態において、前記単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別する前記ステップは、前記第1イベントおよび前記第2イベントを含むイベントのセットを収集すること、前記セット内のイベントからそれぞれのユーザ識別子を抽出すること、抽出された前記ユーザ識別子をそれぞれのアカウントにマッピングすること、および、前記アカウントをそれぞれのユーザエンティティに関連付けることを含む。ここで、前記単一のユーザエンティティは、複数のユーザエンティティのうち1つを含む。
【0006】
第1実施形態において、所与の抽出されたユーザ識別子を所与のアカウントにマッピングすることは、所与のユーザエンティティを特定のフォーマットに正規化することを含む。ここで、記所与のアカウントは、前記正規化されたユーザエンティティを含む。
【0007】
第2実施形態において、前記単一のユーザエンティティは、1つ以上のアカウントに関連付けられる。
【0008】
第3実施形態において、複数のユーザ識別子は、前記単一のユーザエンティティの所与のアカウントにマッピングされる。
【0009】
追加的な実施形態において、第1イベントを検出することは、第1ネットワーク化エンティティ上で第1イベントを検出することを含み、第2イベントを検出することは、第1ネットワーク化エンティティとは異なる第2ネットワーク化エンティティ上で第2イベントを検出することを含む。
【0010】
さらなる実施形態において、第1イベントを検出する前記ステップは、第1期間の最中に複数の第1イベントを検出すること、および、前記複数の第1イベントに応答して、プロファイルを生成することを含む。ここで、第2イベントを検出する前記ステップは、前記第1期間に続く第2期間の最中に1つ以上の第2イベントを検出することを含み、そして、前記第1イベントおよび前記第2イベントの組み合わせは、前記1つ以上の第2イベントが前記プロファイルに従っていないことを検出することを含む。
【0011】
補足的な実施形態において、前記第1イベントは、前記単一のユーザエンティティの時間ベースのステータスを含み、かつ、前記第2イベントは、前記時間ベースのステータスに従わない。
【0012】
本発明の一つの実施形態に従って、コンピュータネットワークを保護するための装置が提供される。本装置は、ネットワークインターフェイスカード(NIC)と、少なくとも1つのプロセッサとを含む。前記プロセッサは、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別し、前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出し、前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出し、かつ、前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行するように構成されている。
【0013】
本発明の一つの実施形態に従って、コンピュータシステムを保護するためのコンピュータソフトウェア製品が追加的に提供される。本製品は、プログラム命令が保管された非一時的コンピュータ可読媒体を含む。本命令は、コンピュータによって読み取られると、前記コンピュータに、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別し、前記ユーザ識別子のうち第1ユーザ識別子を使用して実行される第1イベントを検出し、前記ユーザ識別子のうち前記第1ユーザ識別子とは異なる第2ユーザ識別子を使用して実行される第2イベントを検出し、かつ、前記第1イベントおよび前記第2イベントの組み合わせに応答して、アラートを発行するようにさせる。
【図面の簡単な説明】
【0014】
本開示は、添付の図面を参照して、単なる例として、本明細書に記載されている。
【
図1】
図1は、本発明の一つの実施形態に従った、ネットワークイベントログから取り出されたイベントに基づいて、ユーザエンティティについてのアクティビティプロファイルを生成するように構成された、セキュリティサーバを備えるコンピューティングファシリティを概略的に示すブロック図である。
【
図2】
図2は、本発明の一つの実施形態に従った、所与のイベントログの一つの例を示すブロック図である。
【
図3】
図3は、本発明の一つの実施形態に従った、セキュリティサーバに保管された集約イベントログ(aggregated event log)の一つの例を示すブロック図である。
【
図4】
図4は、本発明の一つの実施形態に従った、ドメインデータベースサーバによって保管され得るデータベースレコードの一つの例を示すブロック図である。
【
図5】
図5は、本発明の一つの実施形態に従った、セキュリティサーバ上に保管されたユーザエンティティ情報の一つの例を示すブロック図である。
【
図6】
図6は、本発明の一つの実施形態に従った、アクティビティプロファイルを生成する方法を概略的に示すフローチャートである。
【
図7】
図7は、本発明の一つの実施形態に従った、疑わしいアクティビティを検出するために生成されたアクティビティプロファイルを使用する方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【0015】
コンピュータネットワークにわたり通信するネットワーク化エンティティ(networked entity)は、典型的に、ネットワーク化エンティティにおけるイベントを記録(record)するログを保管している。これらのログは、イベントについての識別子を含むことができるが、一方で、ユーザエンティティ(例えば、組織の従業員)は、ネットワーク上のデータにアクセスするときに、複数のアカウント(例えば、電子メールアカウント)を使用することができ、そして、各アカウントは、ネットワーク上のデータにアクセスするときに、複数の識別子を使用することができる。従って、ネットワーク上の異なるアカウントおよび異なるユーザ識別子を使用して、所与のユーザエンティティによって実行される疑わしい/悪意(suspicious/malicious)のあるアクティビティを検出することは困難であり得る。
【0016】
本発明の実施形態は、単一のユーザエンティティに関連付けられた複数のユーザ識別子を識別することによって、コンピュータシステムを保護するための方法およびシステムを提供する。ユーザ識別子のうちの第1ユーザ識別子を使用して実行された第1イベントを検出し、かつ、ユーザ識別子のうちの第1ユーザ識別子とは異なるユーザ識別子のうちの第2ユーザ識別子を使用して実行された第2イベントを検出すると、第1イベントおよび第2イベントの組み合わせに応答して、アラートを発行することができる。いくつかの実施形態において、第1イベントは、第1ネットワーク化エンティティ上の第1ログから収集され、そして、第2イベントは、第1ネットワーク化エンティティとは異なる第2ネットワーク化エンティティ上の第2ログから収集される。
【0017】
一つの実施形態においては、コンピュータネットワークに結合されたネットワーク化エンティティ上の複数のイベントログから、複数のイベントを収集することができる。識別子は、イベントから抽出され得る。識別子は、イベントをアカウントにマッピングするように正規化され得る。そして、アカウントのサブセットは、単一のユーザエンティティに関連付けられ得る。ユーザエンティティプロファイルが、次いで、単一のユーザエンティティに関連付けられたイベントに基づいて生成され得る。この実施形態を使用して、本発明の実施形態を実施するシステムは、単一のユーザエンティティに関連付けられた任意の後続のイベントが、ユーザエンティティプロファイルに従っていないと判定された場合に、疑わしいアクティビティを検出し、かつ、フラグ付けすることができる。
【0018】
システムの説明
図1は、本発明の一つの実施形態に従った、複数のネットワーク化エンティティによってそれぞれのイベントログ26に記録されたアクティビティに基づいて、ユーザエンティティアクティビティプロファイル24を生成するように構成された、セキュリティサーバ22を備えるコンピューティングファシリティ20の一つの例を概略的に示すブロック図である。
図1に示される構成において、セキュリティサーバ22は、ローカルエリアネットワーク(データベースサーバ)32といったデータネットワークにわたり、複数のコンピューティングデバイス28(ホストまたはホストコンピュータとしても、また、知られるもの)、アカウントLAN 29、および人事(HR)サーバ30と通信するように構成されている。
【0019】
アカウントデータベースサーバ29は、ドメインデータベース管理システム(DBMS)アプリケーション31およびドメインデータベース37を含み有み得る。アカウントデータベース33は、以下で
図4を参照する記載において説明されているアカウントデータベースレコード35のセットを含んでいる。
【0020】
コンピューティングファシリティ20は、また、インターネットゲートウェイ34を含み得る。これは、コンピューティングファシリティ20をインターネットといったパブリックネットワーク36に結合する。コンピューティングデバイス28を保護するために、コンピューティングファシリティ20は、LAN32に結合され、かつ、所定のセキュリティルールに基づいて、コンピューティングデバイス28と、1つ以上のクラウドサーバ42を含むデータクラウド40との間のデータトラフィックを制御する、ファイアウォール38も含み得る。
【0021】
上述のように、セキュリティサーバ22は、複数のネットワーク化エンティティによって、それぞれのイベントログ26に記録されたアクティビティに基づいて、ユーザエンティティプロファイル24を生成するように構成され得る。
図1の構成は、ネットワーク化エンティティがコンピューティングデバイス28、ファイアウォール38、およびクラウドサーバ42を含むことを示しているが、ネットワークにわたり通信する任意の他のタイプのネットワーク化エンティティは、本発明の趣旨および範囲内にあるものと考えられる。
【0022】
図1に示される構成において、イベントログ26は、識別番号に文字を付加することによって区別することができ、その結果、ウェブページは、以下のようになる。
●オペレーティングシステム(OS)ログ26Aは、コンピューティングデバイス28上で実行されるオペレーティングシステム(マイクロソフト社によって製造されるWindows(登録商標)、およびLinux(登録商標)といったもの)、およびアプリケーションによって生成されるイベントに関する情報を保管する。
●エンドポイント検出および応答(endpoint detection and response、EDR)ログ26Bは、コンピューティングデバイス28上で実行されるエンドポイントエージェント44(例えば、95054 米国カリフォルニア州、サンタクララ、タンナーウェイ3000のパルアルトネットワーク社によって製造されたXDR
TM)によって検出されたイベントに関する情報を保管する。
●ファイアウォールログ26Cは、コンピューティングファシリティ20(例えば、コンピューティングデバイス28)と、インターネット36に結合されたサーバ(例えば、クラウドサーバ42)との間の送信に関する情報を保管する。ファイアウォール38の一つの例は、パルアルトネットワーク社によって製造されたPA-3250 Next Generation Firewall
TMである。
●クラウドイベントログ26Dは、クラウドサーバ42によって生成されたイベントに関する情報を保管する。ログ26の例は、これらに限定されるわけではないが、アプリケーションログ、リソースログ、およびAmazon Web Service(98109 米国ワシントン州、ノースシアトル、テリーアベニュー410のアマゾンドットコム社によって提供されるもの)についてのサービスログを含む。
【0023】
本明細書で説明される実施形態において、セキュリティサーバ22は、ログ26からユーザ識別子(ID)を抽出し、ユーザIDを正規化し、かつ、正規化されたユーザIDをユーザエンティティ(すなわち、従業員といった個々の人々)に関連付ける。いくつかの実施形態において、HRサーバ30は、各ユーザエンティティの情報を保管するHRデータベース46を保管している。いくつかの実施形態において、HRデータベース46は、組織のユーザエンティティ(すなわち、従業員)との一対一の対応を有するレコード47のセットを含んでいる。
【0024】
セキュリティサーバ22は、プロセッサ48、メモリ50、および、セキュリティサーバをネットワークインターフェイスカード32に結合するローカルエリアネットワーク(NIC)51を含んでいる。いくつかの実施形態において、プロセッサ48は、ログ26を集約イベントログ52へと組み合わせることができる。イベントログ26および52は、それぞれに、以下で
図2および
図3を参照する記載において説明されている。
【0025】
本明細書において説明される実施形態において、プロセッサ48は、イベントログ24A-24Dからイベントを収集し、そして、集約イベントログ52に保管するが、他のタイプのイベントログ26から集約イベントログへとイベントを集約することは、本発明の趣旨および範囲内にあるものと考えられる。1つ以上の追加のイベントログ26によって保管され得る情報の例は、これらに限定されるわけではないが、以下を含む。
●入力/出力(I/O)イベント(ファイルイベントとしても、また、知られる)。I/Oイベントの一つの例は、「local_file\malicious.exe」という名前のファイルを書き込むドメインアカウント「Company\jdoe」である。ドメインアカウントについては後述する。
●レジストリイベント。レジストリイベントの一つの例は、値「local_file\malicious.exe」を有する、Autorunに関連するレジストリキーを修正するドメインアカウント「Company\jdoe」である。
●プロセス実行イベント。プロセス実行イベントの一つの例は、ドメインアカウント「company\jdoe」の許可を伴い「local_file\malicious.exe」を自動的に実行するSYSTEMである。
●ネットワークイベント。ネットワークイベントの一つの例は、local_file\malicious.exeという名前のプロセスを使用して、「www.malware_command_and_control.com」へのHTTP要求を実行したドメインアカウント「company\jdoe」である。
●シングルサインオン(SSO)イベント。SSOサービス(例えば、OktaTM、PingOneTM、AzureADTM)は、典型的に、監査ログ(audit log)を提供する。プロセッサ48が収集できるイベントの一つの例は、ログインするSSOアカウント「john.doe@company.com」である。
●電子メールイベント。電子メールイベントを保管する電子メールログは、OutlookTMといったローカルシステム、ExchangerServerTMといったサーバ(すなわち、企業)システム、および、ExchangeOnlineTMといったクラウドベースの電子メールサーバから収集され得る。ローカルシステムにおける電子メールイベントの例は、「john.doe@gmail.com」によって送信/受信される電子メールである。サーバシステムにおける電子メールイベントの一つの例は、「johndoe@company.com」によって送信/受信される電子メールである。クラウドベースのシステムにおける電子メールイベントの一つの例は、「john_doe@cloud_email_provider.com」によって送信/受信される電子メールである。
【0026】
図1に示される構成において、メモリ50は、また、プロファイル24を保管する複数のユーザエンティティレコード54も保管する。いくつかの実施形態において、各所与のユーザエンティティレコード54は、HRデータベース46から所与のユーザエンティティについての情報を取り出し、そして、取り出された情報を所与のユーザエンティティレコードに保管することができる。
【0027】
いくつかの実施形態において、イベントログ26からユーザIDを抽出すること、ユーザIDを正規化すること、正規化されたユーザIDをユーザエンティティに関連付けること、ログ26を集約イベントログ52へと集約すること、および、ユーザエンティティプロファイル24を生成すること、といった、本明細書で説明されるタスクは、コンピューティングファシリティ20内の、または、コンピューティングファシリティの外部の複数のコンピュータシステム22、28、および30(例えば、クラウドサーバ42)の間で分割され得る。追加的な実施形態において、コンピューティングデバイス28、セキュリティサーバ22、アカウントデータベースサーバ29、およびHRサーバ30の一部または全部の機能性は、物理的コンピューティングデバイス、仮想マシンまたはコンテナとして、コンピューティングファシリティ20及び/又はインターネット36内に配備され得る。
【0028】
いくつかの実施形態において、クライアントコンピュータ28は、クライアントコンピュータのそれぞれを識別するために使用され得る、それぞれのホスト名56を有している。
【0029】
プロセッサ48は、汎用中央処理装置(CPU)または専用組み込みプロセッサを含み、これらは、本明細書で説明される機能を実行するためにソフトウェアまたはファームウェアでプログラムされている。このソフトウェアは、例えば、ネットワークにわたり、電子形式でセキュリティサーバ22にダウンロードされ得る。追加的または代替的に、ソフトウェアは、光学、磁気、または電子メモリ媒体といった、有形の、非一時的コンピュータ可読媒体に保管され得る。さらに追加的または代替的に、プロセッサ48の機能の少なくともいくつかは、ハードワイヤードまたはプログラマブルデジタル論理回路によって実行され得る。
【0030】
メモリ50の例は、ダイナミックランダムアクセスメモリ、不揮発性ランダムアクセスメモリ、ハードディスクドライブ、およびソリッドステートディスクドライブを含んでいる。
【0031】
図2は、本発明の一つの実施形態に従った、イベントログ26に保管されたデータコンポーネントの一つの例を示すブロック図である。イベントログ26A-26Dは、異なるそれぞれのレイアウト(すなわち、フォーマットおよびスキーマ)で情報を保管することができるが、簡単にするために、本明細書におけるイベントログは単一のレイアウトを含んでいる。
【0032】
図2に示される例において、各イベントログ26は、イベントログエントリ60のセットを含み、イベントログエントリのそれぞれは、日付62、時間64、および、イベントの記述を保管するイベントメッセージ66を含んでいる。所与のイベントログエントリ60内の所与のイベントについて、日付62は、所与のイベントの日付を含み、時間64は、所与のイベントの時間を含み、そして、イベントメッセージ66は、イベントを記述して、参加者のユーザ識別子をリストする。ユーザ識別子は、以下で
図3を参照する記載において説明されている。
【0033】
各イベントメッセージ66(すなわち、所与のイベントを参照するもの)は、1つ以上のユーザ識別子68(すなわち、対応するイベントの参加者)を有することができる。一つの実施例において、所与のイベントメッセージが、電子メールを送信するユーザエンティティを含むイベントに対応する場合に、所与のイベントメッセージ66は、単一の識別子(ID)68を含んでいる。別の実施例において、所与のイベントメッセージが、第2ユーザエンティティに関連付けられた第2アカウントに対して1つ以上のシステム許可(system permission)を与える、第1ユーザエンティティに関連付けられた第1アカウントを含むイベントに対応する場合に、所与のイベントメッセージは、2個の識別子68を含み得る。
【0034】
本発明の実施形態において、1つ以上のそれぞれのアカウント69を使用してコンピューティングデバイスを操作する、複数のユーザエンティティ67(すなわち、個々の物理ユーザ)が存在している。以下で説明されるように、プロセッサ48は、各識別子68をそれぞれのアカウント69にマッピングし、そして、次いで、各アカウント69をそれぞれのユーザエンティティ67に関連付けることができる。アカウント69は、以下で
図5を参照する記載において説明されている。
【0035】
いくつかの実施形態において、プロセッサ48は、全てのイベントログ(例えば、イベントログ26A-26D)からイベントログエントリ60を取り出し、そして、取り出されたイベントログエントリ内のイベント情報を集約イベントログ52に保管することができる。以下で説明されるように、プロセッサ48は、集約イベントログ52に保管された情報を使用して、イベントをユーザエンティティにマッピングすることができる。
【0036】
図3は、本発明の一つの実施形態に従った、集約イベントログ52に保管されたデータコンポーネントの一つの例を示すブロック図である。集約イベントログ52は、集約ログエントリ70のセットを含んでいる。いくつかの実施形態において、プロセッサ48は、各イベントログ26内の各イベントログエントリ60に対して新しい集約ログエントリ70を作成することができる。別の言葉で言えば、各集約ログエントリ70は、対応するイベントログエントリ60を有している。
【0037】
各集約イベントログエントリ70は、イベントID 72、ソース74、日付76、時間78、イベントメッセージ80、および、識別子情報レコード82を含んでいる。対応するイベントログエントリ60について新しい集約ログエントリ70を作成すると、プロセッサ48は、以下を行うことができる。
●固有のイベントIDを作成する(72)。
●対応するイベントログエントリ60を保管しているイベントログを生成したデバイスの識別子を、ソース74に、保管する。識別子の実施例は、これらに限定されるわけではないが、所与のクラウドサーバ42のインターネットプロトコル(IP)アドレス、または、所与のコンピューティングデバイス28のメディアアクセス制御(MAC)アドレスを含む。
●対応するイベントログエントリ60の日付62を日付76にコピーする。
●対応するイベントログエントリ60内の時間64を時間78にコピーする。
●対応するイベントログエントリ60内のイベントメッセージ66をイベントメッセージ80にコピーする。
【0038】
いくつかの実施形態において、プロセッサ48は、イベントメッセージ80から1つ以上のユーザID 69を抽出し、ユーザIDを正規化し、そして、正規化されたユーザIDをユーザエンティティに関連付けることができる。
図3に示される構成において、所与のイベントメッセージ80から抽出された各ユーザID 69は、抽出されたユーザ識別子84、識別子タイプ86、マッピングされたアカウントm、および、関連付けられたユーザエンティティ90といった情報を保管する、対応する識別子レコード82を有している。
【0039】
新しい集約ログエントリを作成すると(すなわち、上述のように)、プロセッサ48は、イベントメッセージ80内のいくつかの(すなわち、1つ以上の)識別子68を識別し、各識別子68が対応する識別子情報レコード82を有するように、識別されたいくつかの識別子情報レコード82を新しい集約ログエントリに追加し、そして、以下のように各所与の識別子情報レコードをポピュレート(populate)することができる。
●対応する識別子68を抽出された識別子84に保管する。
●抽出された識別子84を分類し、そして、分類を識別子タイプ86に保管する。識別子の分類は、以下で説明される。
●対応する識別子を所定のアカウント69にマッピングするように、対応する識別子68を正規化し、そして、マッピングされたアカウントをマッピングされたアカウント88に保管する。正規化識別子68は、以下で
図6を参照する記載において説明されている。
●マッピングされたアカウント88に関連付けられた所与のユーザエンティティ67を識別し、そして、識別されたユーザエンティティを関連付けられたユーザエンティティ90に保管する。関連付けられたユーザエンティティ90を識別することは、以下で
図6を参照する記載において説明されている。
【0040】
以下で説明される実施例においては、「John Doe」という名前の所与のユーザエンティティ67が、会社「Company」という、複数のマッピングされたアカウント88を有しており、それぞれが1つ以上の識別子84によって参照される、会社のために働いている。
【0041】
識別子タイプ86の例は、これらに限定されるわけではないが、以下を含んでいる。
●ドメイン名は、「Company/jdoe」といったものである。ドメイン名は、典型的に、イベントログ26A、26B、および、26C内のイベントメッセージ66において見出すことができる。
●最終的に認可されたドメイン名(FQDN)は、てき「Company.com/jdoe」といったものである。FQDNは、典型的に、イベントログ26A、26B、および、26C内のイベントメッセージ66において見出すことができる。
●ユーザ名(すなわち、ドメインを有さない)は、「jdoe」といったものである。ユーザ名は、典型的に、イベントログ26A、26B、および、26C内のイベントメッセージ66において見出すことができる。
●セキュリティ識別子(SID)番号は、「S-1-5-21-1602811402-2595058921-120187713-502」といったものである。SID番号は、典型的に、イベントログ26Aおよび26B内のイベントメッセージ66において見出すことができる。
●グローバル一意識別子(GUID)番号は、「8c6bfd4a-4cb2-11ea-b67e-88e9fe502c1f」といったものである。GUID番号は、典型的に、イベントログ26Bおよび26D内のイベントメッセージ66において見出すことができる。
●ローカルユーザ名は、「host123\jdoe」といったものであり、ここで、「host123」は所与のホスト名56を含んでいる。ローカルユーザ名は、典型的に、イベントログ26A、26B、および、26C内のイベントメッセージ66において見出すことができる。
●企業ユーザ名は、「john.doe@company.com」といったものである。これらのユーザ名は、典型的に、SSOログ(図示なし)、電子メールログ(図示なし)、並びに、イベントログ26Cおよび26Dといった、イベントログ26内のイベントメッセージ66において見出すことができる。
●個人ユーザ名は、「john.doe@gmail.com」といったものである。これらのユーザ名は、典型的に、SSOログ(図示なし)、電子メールログ(図示なし)、並びに、イベントログ26Cおよび26Dといった、イベントログ26内のイベントメッセージ66において見出すことができる。
【0042】
図4は、本発明の一つの実施形態に従った、所与のデータベースレコード35の構成の一つの例を示すブロック図である。各データベースレコード35は、イベント識別子92、および、所与のアカウント69を参照する対応するアカウント識別子94といった、情報を保管することができる。この構成を使用して、アカウントデータベースレコード33は、識別子68とアカウント67との間の既知の関係を保管することができる。
【0043】
いくつかの実施形態において、アカウントデータベース33は、パルアルトネットワーク社によって製造されたDirectory Sync ServiceTM(DSSTM)を含み、かつ、エンドポイントエージェント44は、XDRTMを含み得る。XDRTMエンドポイントエージェントは、識別子68とアカウント67との間のマッピングを取り出すために、DSSTMとインタラクションすることができる。
【0044】
例えば、識別子68とアカウント67との間の関係は、Windows(登録商標)ドメインタイプネットワーク内の全てのユーザおよびコンピュータを認証、かつ、認可すること、全てのコンピュータについてセキュリティポリシー割当て、かつ、実施すること、および、ソフトウェアをインストール、かつ、更新すること、といった、動作を実行する、Active DirectoryTM(米国ワシントン州、レッドモンドのマイクロソフト社によって製造されるもの)のような、ディレクトリサービスアプリケーション(図示なし)によって維持することができる。この実施例において、アカウントDBMS 31は、識別子68とドメインアカウントを含むアカウント67との間のマッピングを取り出すために、アクティブDirectoryTMをクエリ(query)することができる。
【0045】
図5は、本発明の一つの実施形態に従った、ユーザエンティティレコード54に保管された情報の一つの例を示すブロック図である。
図5に示される構成において、各ユーザ072レコード54は、ユーザエンティティID 100、ユーザエンティティプロファイル24、ステータス情報レコード104のセット、アカウント情報レコード106のセット、および、識別子-アカウントマッピングレコード108のセットといった、情報を保管している。
【0046】
ユーザエンティティID 100は、所与のユーザエンティティ67について一意の識別子を含んでいる。いくつかの実施形態において、プロセッサは、アカウントデータベースレコード47と一対一の対応を有している、ユーザエンティティレコード54のセットを作成し、そして、セット内の各ユーザエンティティid 100に一意の識別子を保管することができる。従って、各所与のユーザエンティティ(すなわち、従業員)67は、対応するユーザエンティティレコード54を有している。ユーザエンティティID 100は、また、本明細書ではユーザエンティティ100としても称され得る。
【0047】
ユーザエンティティプロファイル24は、対応するユーザエンティティの予想されるアクティビティを示すユーザプロファイルを含んでいる。本明細書において以下で
図7を参照する記載において説明されるように、プロセッサ48は、コンピューティングファシリティ20内の対応するユーザエンティティによって実行されるアクションにおける任意の異常を検出するために、ユーザプロファイル24を使用することができる。
【0048】
各ステータス情報レコードは、開始日110、終了日112、および、ステータス114を含んでいる。各所与のステータス114は、開始日110で始まり終了日112で終わる期間におよぶ。いくつかの実施形態において、開始日110および終了日112は、また、時間(例えば、2022年12月11日の13時30分)も含み得る。
【0049】
ステータス114の実施例は、これらに限定されるわけではないが、以下を含む。
●雇用期間.プロセッサ48は、もはやユーザエンティティが組織によって雇用されていない場合に、対応するユーザエンティティによるアクティビティ(例えば、電子メール、ファイルアクセス)を疑わしいものとしてフラグ付けすることができる。
●休暇期間.プロセッサ48は、ユーザエンティティが休暇を取っている場合に、対応するユーザエンティティによるアクティビティ(例えば、電子メール、ファイルアクセス)を疑わしいものとしてフラグ付けすることができる。
●位置.組織は、複数の位置(location)を有することができ、そして、HRデータベースは、各ユーザエンティティが所与の時間に働く位置を追跡することができる。いくつかの実施形態において、プロセッサ48は、異常な位置から作業する所与のユーザエンティティによるアクティビティを検出するために、この情報を使用することができる。
●デバイス.ユーザエンティティ100は、異なるコンピューティングデバイス28(例えば、デスクトップ/ラップトップコンピュータ、および、モバイルデバイス)を使用し得る。プロセッサ48は、任意の所与の時間(すなわち、過去または現在)に、どのユーザエンティティがどのコンピューティングデバイス28を使用しているかを追跡するために、この情報を使用することができる。
●部門.任意の所与の時間に、各ユーザエンティティ100を特定の部門(例えば、金融、マーケティング)に割り当てることができ、それによって、各部門の従業員によって典型的にアクセスされるシステム(例えば、給与支払い、広告追跡)を示している。
●タイトル.所与のユーザエンティティ100の組織タイトル(例えば、マネージャ、スーパーバイザ)は、所与のユーザエンティティについて特権および典型的なシステム挙動を示すことができる。
【0050】
各ユーザエンティティID100は、典型的に、1つ以上の電子メールアカウントを使用する。
図5に示される構成において、各所与のユーザエンティティ100は、所与のユーザエンティティによって使用される電子メールアカウントのそれぞれについての対応するアカウント情報レコード106を保管する、対応するユーザエンティティレコード54を含んでいる。
【0051】
各アカウント情報レコード106は、一意のアカウントID 116、アカウント名118(すなわち、「john.doe@company.com」およびjohn.doe@gmail.comといった電子メールアドレス)、および、アカウントタイプ120といった情報を保管することができる。本明細書の実施形態において、アカウントID 116は、また、アカウント116と称され得る。
【0052】
アカウントタイプ120の実施例は、これらに限定されるわけではないが、以下を含む。
●「Company/jdoe」といったドメインアカウント。ドメインアカウントは、組織内のActive DirectoryTM(マイクロソフト社によって製造されるもの)ドメインにわたり使用することができるアカウントを含んでいる。ドメインアカウントは、典型的に、以下の識別子タイプ86に関連付けられる。ドメイン名、FQDN、ユーザ名、SID番号、GUID番号、および、企業識別子。
●ローカルアカウントは、特定のそれぞれのネットワーク化エンティティに結び付けられた、「host123/jdoe」(すなわち、「host123」が所与のホスト名56を含む)といったアカウントを含んでいる。ローカルアカウントは、典型的に、以下の識別子タイプ86に関連付けられる。ユーザ名、SID番号、GUID番号、および、ローカルユーザ。
●「john.doe@company.com」といったクラウドアカウント。クラウドアカウントは、Google Cloud PlatformTM(カリフォルニア州、マウンテンビューのAlphabet社によって提供されるもの)、または、AzureTM(Microsoft社によって提供されるもの)のように、クラウドインフラストラクチャにわたり使用され得る。クラウドアカウントは、典型的に、以下の識別子タイプ86に関連付けられる。GUID番号、企業識別子、および、個人識別子。
●組織の内側および外側の両方で使用できる「john.doe@gmail.com」といったアカウントを含むパーソナルアカウント。パーソナルアカウントは、典型的に、個人識別子に関連付けられる。
【0053】
本発明の実施形態において、プロセッサ48は、イベントログエントリ0から識別子84を抽出し、そして、それぞれのマッピングされたアカウント88を識別するために、抽出された識別子を正規化する。対応するユーザエンティティレコード54内の所与のユーザエンティティ100について、プロセッサ48は、識別子-アカウントマッピングレコード108内に、抽出された識別子と、関連付けられたアカウントとの間の現在のマッピング(すなわち、両方とも所与のユーザエンティティに対するもの)を保管することができる。所与のユーザエンティティレコード54内の(すなわち、対応するユーザエンティティ100についての)各識別子-アカウントマッピングレコード108は、以下のような情報を保管することができる。
●対応するユーザエンティティによって使用される所与の識別子84を含むユーザ識別子122。
●識別子タイプ124。上述のように、識別子タイプ124は、ドメイン名、FQDN、ユーザ名、SID番号、GUID番号、ローカルユーザ名、企業識別子、および、個人識別子を含んでいる。
●関連付けられたアカウントID126は、プロセッサ48が識別子122と関連付ける、所与のアカウントID 116を保管する。
【0054】
ユーザエンティティ識別
図6は、本発明の一つの実施形態に従った、イベントログ26内のアクティビティをユーザエンティティ100に関連付け、そして、コンピューティングファシリティ20内のユーザエンティティのアクティビティに基づいてプロファイル24を生成する方法を概略的に示すフローチャートである。
【0055】
ステップ130において、プロセッサ48は、ユーザエンティティレコード54を初期化する。上述のようないくつかの実施形態において、各ユーザエンティティレコード54は、対応するユーザエンティティ100の所与のHRデータベースレコード47aに対応している。ユーザエンティティレコード54を初期化するとき、追加的に、ユーザエンティティレコード54を初期化するときに、プロセッサ48は、ユーザエンティティプロファイル24も、同様に初期化することができる。
【0056】
ステップ132において、プロセッサ48は、イベントログ26を識別する。
【0057】
ステップ134において、プロセッサは、所与のイベントログ26内で未マッピング(unmapped)イベントログエントリ60を選択する。本明細書の実施形態において、未マッピングイベントログエントリ60は、以下で説明されるように、ステップ134-136によって処理されないイベントログエントリのいずれかを含んでいる。
【0058】
ステップ136において、プロセッサ48は、選択されたイベントログエントリを取り出す(retrieve)。選択されたログエントリを取り出すと、プロセッサ48は、新しい集約ログエントリ70を集約イベントログ52に追加し、そして、本明細書で上記に説明した実施形態を使用して、新しい集約ログエントリ内に、イベントID72、ソース74、日付76、時間78、および、イベントメッセージ80をポピュレートすることができる。
【0059】
ステップ138において、プロセッサ48は、イベントメッセージ80内の1つ以上の識別子68を識別し、そして、識別された識別子68を1つ以上の抽出された識別子84に(すなわち、1つ以上のそれぞれの識別子情報レコード82内に)保管する。
【0060】
ステップ140において、プロセッサ48は、抽出された識別子のそれぞれをそれぞれのアカウント116にマッピングするために、1つ以上の抽出された識別子84を1つ以上の指定されたフォーマットに正規化する。いくつかの実施形態において、各アカウントタイプ120は、対応する指定されたフォーマットを有し得る。上述のアカウントタイプの実施例を使用すると、以下のようである。
●アカウントタイプ「domain account」のために指定されたフォーマットは、「CompanyName[/]UserName」であり得る。ここで、「CompanyName」および「UserName」は、自己記述的(self-descriptive)である。上述のように、ドメインアカウントの一つの例は「Company/jdoe」である。
●アカウントタイプ「local account」のために指定されたフォーマットは、「ComputerID/UserName」であり得る。ここで、「ComputerID」は、ネットワーク32上の所与のコンピューティングデバイス28に対する識別子を含み、そして、「UserName」は自己記述的である。上述のように、ローカルアカウントの一つの例は「host123/jdoe」である。
●アカウントタイプ「cloud account」のために指定されたフォーマットは、「UserName[@]CompanyDomain」であり得る。ここで、「UserName」は、自己記述的であり、ネットワーク32上の所与のコンピューティングデバイス28のための識別子を含む。そして、「UserName」は、自己記述的であり、かつ、「CompanyDomain」は、企業ドメイン名を含んでいる。上述のように、クラウドアカウントの一つの例は、「john.doe@company.com」である。
●アカウントタイプ「personal account」のために指定されたフォーマットは、「UserName[@]ProviderDomain」であり得る。ここで、「UserName」は、自己記述的であり、そして、「ProviderDomain」は、電子メールサービスプロバイダドメイン名を含む(例えば、Alphabet社によって提供されるGmailTM)。上述のように、パーソナルアカウントの一つの例は、「john.doe@gmail.com」である。
【0061】
いくつかの実施形態において、所与のイベントについてのフォーマットは、ソース(例えば、所与のイベントに対応するイベントログエントリをプロセッサ48が取り出したイベントログ、イベントタイプ、所与のイベントに対応するログエントリ内のフィールド)、または、所与のイベントに対応するログエントリのコンテンツに基づいている。例えば、以下のようである。
●所与の抽出された識別子84が電子メール識別子フォーマット(すなわち、「local-part[@]domain」、ここで、「local-part」は、ユーザ名および「domain」を含む)を有している場合に、プロセッサ48は、所与の識別子をクラウドアカウント(例えば、「john.doe@company.com」)またはパーソナルアカウント(例えば、「john.doe@gmail.com」)に正規化することができる。
●プロセッサ48が、電子メールサーバのログからの所与のログエントリ60から所与の識別子84を抽出し、かつ、ドメインが何らかのパブリックサービスである場合に、それは、プライベート電子メールアカウントを参照している可能性が最も高いことが分かる(例えば、コンテキストは、所与のログエントリが電子メールサーバの所与のログ26から来たことであり、そして、所与のログエントリのコンテンツは「@gmail」のようなパブリック電子メールドメインを含んでいた)。
●SIDフォーマットは、ローカルまたはドメインアカウントを参照することができ、そして、たいてい、コンテンツによって区別される。いくつかの実施形態において、SIDのプレフィックスは、ドメイン、またはローカルマシン(例えば、所与のコンピューティングデバイス28)を一意に識別する。
●GUIDは、異なるアカウントタイプを参照することができ、そして、コンテキスト(例えば、プロセッサ48がGUIDを抽出したログ26のそれぞれのタイプ)によって、または、プロセッサ48がアカウントデータベース33(例えば、DSSTM)から抽出することができる「ground truths」にGUIDをマッチングすることによって認識することができる。
【0062】
いくつかの実施形態において、1つ以上の抽出された識別子84(それぞれの識別子68に対応しているもの)から単一のアカウント116(所与のアカウント69に対応しているもの)へのマッピングが存在し得る。例えば、以下のようである。
●プロセッサ48は、以下の識別子84を、アカウントタイプ120がドメインアカウントを含む所与のアカウント116「Company/jdoe」にマッピングすることができる。
○「Company/jdoe」、識別子タイプ86がドメイン名を含むもの
○「Company.com/jdoe」、識別子タイプ86がFQDNを含むもの
○「jdoe」、識別子タイプ86がドメインを伴わないユーザ名を含むもの
○「S-1-5-21-1602811402-2595058921-120187713-502」、識別子タイプ86がSIDを含むもの
○「8c6bfd4a-4cb2-11ea-b67e-88e9fe502c1f」、識別子タイプ86がGUIDを含むもの
○「host123\jdoe」、識別子タイプ86がローカルユーザ名を含むもの
○「john.doe@company.com」、識別子タイプ86が企業ユーザ名を含むもの。
●プロセッサ48は、以下の識別子84を、アカウントタイプ120がローカルアカウントを含む所与のアカウント116「host123/jdoe」にマッピングすることができる。
○「jdoe」、識別子タイプ86がドメインを伴わないユーザ名を含むもの
○「S-1-5-21-1602811402-2595058921-120187713-502」、識別子タイプ86がSIDを含むもの
○「8c6bfd4a-4cb2-11ea-b67e-88e9fe502c1f」、識別子タイプ86がGUIDを含むもの
○「host123\jdoe」、識別子タイプ86がローカルユーザ名を含むもの
●プロセッサ48は、以下の識別子84を、アカウントタイプ120がクラウドアカウントを含む所与のアカウント116「john.doe@company.com」にマッピングすることができる。
○「8c6bfd4a-4cb2-11ea-b67e-88e9fe502c1f」、識別子タイプ86がGUIDを含むもの
○「john.doe@company.com」、識別子タイプ86が企業ユーザ名を含むもの
○「john.doe@gmail.com」、識別子タイプ86が個人ユーザ名を含むもの
●プロセッサ48は、以下の識別子84を、アカウントタイプ120がパーソナルアカウントを含む所与のアカウント116「john.doe@gmail.com」にマッピングすることができる。
○「john.doe@gmail.com」、識別子タイプ86が個人ユーザ名を含むもの
【0063】
いくつかの実施形態において、プロセッサ46は、それぞれのアカウント116に対する抽出された識別子に対して、データベースレコード35をクエリすることができる。
【0064】
所与の抽出された識別子84の各マッピングを実行すると、プロセッサ48は、マッピングされたアカウント(ID)116を、所与の抽出された識別子を保管している識別子情報レコード82内のマッピングされたアカウント88に保管する。ステップ140で検出された任意の所与のマッピングが未だユーザエンティティレコード54に保管されていない場合、プロセッサ48は、新しい識別子-アカウントマッピングレコードを、マッピングされたアカウントを保管しているユーザエンティティレコード内に追加し、そして、それに応じて、識別子122、識別子タイプ124、および、関連付けられたアカウントID126をポピュレートすることができる。
【0065】
第1正規化の実施形態においては、文字列操作(string manipulation)によって、所与の抽出された識別子84を正規化することができる(すなわち、プロセッサ48は、抽出された識別子をテキスト文字列として保管する)。この実施形態において、プロセッサ48は、相関およびクエリを可能にするために、抽出された識別子84を正規化することができる。例えば、プロセッサ48は、以下の両方を「company\jdoe」に正規化するために、文字列操作を使用することができる。
●「jdoe@company[.]onmicrosoft[.]
●「domain=company.local, username=jdoe」
【0066】
第2正規化の実施形態において、プロセッサ48は、ドメイン知識(domain knowledge)を使用することによって、所与の抽出された識別子84を正規化することができる。この実施形態において、特別な識別子は、所与の識別子にマッピングされたアカウントのタイプおよび範囲を(例えば、ホストまたはメインレベル)で示すことができる。以下の例において、プロセッサ48は、以下のことを行うためにドメイン知識を使用使用することができる。
●「AzureAD\jdoe」をクラウドアカウントにマッピングする。
●「MicrosoftAccount\jdoe」ドメインを個人MicrosoftTMアカウントにマッピングする。
●「company\jdoe$」を所与のホスト名56「jdoe」のマシンアカウントにマッピングする。この例において、識別子における「$」は、マシンアカウント(すなわち、「$」+ユーザ名)を示す。
【0067】
ドメイン知識は、プロセッサ48が、Active DomainTMおよびケルベロス領域(Kerberos realms)、並びに、様々なデータクラウド環境において、典型的には、異なって管理されるアカウントを区別することを可能にする。
【0068】
第3正規化の実施形態において、プロセッサ48は、以前に学習された知識を使用することによって、所与の抽出された識別子84を正規化することができる。この実施形態において、プロセッサ48は、所与の抽出された識別子84のアカウントを決定するために、学習された役割(role)およびディレクトリ同期サービス(DSSTM)を使用することができる。以下の例において、プロセッサ48は、ドメイン知識を以下のように使用することができる。
●ad_domain_roleが「company」を含む場合に、アカウントタイプ120はドメインアカウントである。
●internal_hostname_roleが「company」を含む場合に、アカウントタイプ120はローカルアカウントである。
●イベントメッセージがSID番号のみを有する場合に、プロセッサ48は、所与の抽出された識別子を「company\jdoe」にマッピングするように、DSS.sidフィールドを介して(「sid」は、Active DirectoryTMにおいて「security identifier」の省略形である)ピボット(pivot)することができる。
●抽出された所与の識別子が「john.doe@gmail[.]com」を含む場合には、抽出された所与の識別子をドメインアカウントとして認識するように、DSS.upnフィールドを介して(「upn」は、Active DirectoryTMにおいて「user principal name」の省略形である)ピボットし、次いで、抽出された識別子を、正規化された識別子「company\jdoe」にマッピングする。この例において、プロセッサ48は、文字列「john.doe@gmail[.]com」をDSS.upnフィールドと比較し、そして、その値を有するレコードが見つかった場合に、それはドメインアカウントであると見なされ、プロセッサは、正規化された識別子「company\jdoe」を返す。いくつかの実施形態において、対応するDSSレコード「DSS.netbios_domain\DSS.sam_account_name」内の値は、「company\jdoe」を含み得る。
【0069】
フローチャートに戻ると、ステップ142においては、各所与のマッピングされたアカウント88に対して、プロセッサ48は、所与のユーザエンティティ100を所与のマッピングされたアカウント88に関連付ける。いくつかの実施形態において、各ユーザエンティティ100は、1つ以上のアカウント116に関連付けられ得る。例えば、上述のように、マッピングされたアカウントは、「Company/jdoe」、「host123/jdoe」、「john.doe@company.com」、および「john.doe@gmail.com」を含み得る。これら全てのマッピングされたアカウント88は、「John Doe」と名付けられた所与のユーザエンティティに関連付けられ得る。
【0070】
第1関連付け実施形態において、プロセッサ46は、所与のアカウント69を所与のユーザエンティティ67に関連付けるように、HRデータベース46及び/又はアカウントデータベース33に保管された情報を使用することができる。例えば、プロセッサ46が、所与の識別子68を所与のアカウント69「john.doe@gmail.com」にマッピングするためにアカウントデータベース33を使用し、そして、HRデータベース46内で「John Doe」と名付けられた所与のユーザエンティティ67を識別した場合には、それらが同じ名前を有するので、プロセッサは、所与のアカウントを所与のユーザエンティティと関連付けることができる。
【0071】
第2関連付けの実施形態において、プロセッサ48は、所与のユーザエンティティを所与のマッピングされたアカウントに関連付けるために、ヒューリスティック(heuristics)を使用することができる。例えば、「john.doe@gmail[.]com」がDSS表示名「John Doe」と一致する場合に、それらは、同じユーザエンティティ100を参照する可能性が高い。
【0072】
第3関連付けの実施形態において、プロセッサ48は、所与のユーザエンティティを所与のマッピングされたアカウントに関連付けるために、プロファイリング(profiling)および属性を使用することができる。1つのプロファイリングの例において、プロセッサ48は、ホスト名「host_123」を有しているコンピューティングデバイスが、大部分は、単一のユーザエンティティ100「company\jdoe」によって使用されていると判定することができる。第2のプロファイリング例において、プロセッサ48は、アカウント「john.doe@gmail[.]com」が、常に、ホスト名「host_123」を有しているコンピューティングデバイスからログエントリ60を発する(originate)と判定することができる。
【0073】
第1属性の例において、プロセッサ48は、ホスト名「host_123」を有しているコンピューティングデバイスが、ユーザエンティティ「jdoe」によって使用されるパーソナルエンドポイントであると判定することができる。第2属性の例において、プロセッサ48は、「john.doe@gmail[.]com」が、ユーザエンティティ「jdoe」の個人電子メールであると判定することができる。第3属性の例において、プロセッサ48は、ユーザエンティティ「jdoe」が、アカウント「host_123\Administrator」へのアクセスを有する可能性が高いと判定することができる。
【0074】
フローチャートに戻ると、ステップ144において、プロセッサ48は、選択されたログエントリに対応しているイベントに参加した、ユーザエンティティのうちの1つ以上を識別する。
【0075】
ステップ146において、プロセッサ48は、選択されたログエントリ内のイベントメッセージによって示されるイベントを用いて、ステップ144において識別されたユーザエンティティのそれぞれのユーザエンティティプロファイルを更新する。いくつかの実施形態において、プロセッサ48は、指定された期間(例えば、過去30日)内にイベントがあった場合にのみ、選択されたログエントリ内に示されるイベントを用いて、ユーザエンティティプロファイル24を更新することができる。
【0076】
ステップ148において、未マッピング(unmapped)のログエントリ60がある場合に、方法は、ステップ132に進む。本方法は、未マッピングのログエントリ60が存在しないときに終了する。
【0077】
一旦、プロセッサ48がプロファイル24を作成すると、プロセッサは、コンピューティングファシリティ20内で悪意のあるアクティビティを実行するために複数の識別子122を使用している単一のユーザエンティティ100を検出するために、プロファイルを使用することができる。例えば、プロセッサ48は、以下を行うことができる。
1.GoogleDriveTM(カリフォルニア州、マウンテンビューのAlphabet社によって提供されるもの)からファイル「confidential.pdf」をダウンロードした、クラウドアカウント「jdoe@company[.]com」を検出する。
2.ドメインアカウント「Company\jdoe」がファイル「confidential.pdf」を「obscured.zip」にリネームしたことを検出する。
3.obscured.zipという名前の添付ファイルを伴うパーソナル電子メール「john.doe@gmail[.]com」に対して電子メールが送信されたことを検出する。
【0078】
これらの個々のイベントのそれぞれは正当であるように見えるが、本発明の実施形態は、これら3つのイベントを単一のユーザエンティティ100「John Doe」に相関させる(correlating)ことを可能にする。複数の識別子122を有している複数のイベントを相関させることは、プロセッサ48が、単一のユーザエンティティ100に結び付けられた疑わしいイベントシーケンスを検出することを可能にする。
【0079】
図7は、本発明の一つの実施形態に従った、疑わしいアクティビティを検出するためにユーザエンティティアクティビティプロファイル24を使用する方法を概略的に示すフローチャートである。
【0080】
ステップ150では、上記で
図6を参照する記載において説明されたようにプロファイル24を生成した後の時点で、プロセッサ48は、ログ26から、追加的なイベントログエントリ60のセットを収集する。いくつかの実施形態において、プロセッサ48は、特定の期間(例えば、10分または丸1日)の最中に追加的なイベントログエントリを収集することができる。
【0081】
ステップ152において、プロセッサ48は、上記で
図6のステップ140-142を参照する記載において説明された実施形態を使用して、追加的なイベントログエントリ内のイベントメッセージにおけるイベントのそれぞれを、それぞれのユーザエンティティ100に関連付ける。
【0082】
ステップ154において、プロセッサ48は、HRデータベース46に対する任意の更新を用いてステータス情報レコード104を更新し、そして、それに応じて、ユーザエンティティプロファイル24を更新する。例えば、ユーザエンティティ「John Doe」は休暇中であり得る。
【0083】
ステップ156において、プロセッサ48は、未選択(unselected)のユーザエンティティ100を選択する。
【0084】
ステップ158において、プロセッサ48は、選択されたユーザエンティティの追加的なイベントを、選択されたユーザエンティティのユーザエンティティプロファイル24と比較する。
【0085】
ステップ158において、プロセッサ48は、ユーザエンティティプロファイルに基づいて、追加的なイベントが疑わしいアクティビティを含むか否かを判定する。いくつかの実施形態において、各ユーザプロファイル24は、対応するユーザエンティティ100のステータスレコード104からの情報を含むことができる。例えば、所与のユーザエンティティ100についての所与のステータス114が、所与のユーザエンティティが退職していることを示しており、かつ、プロセッサ48が、退職の後でユーザエンティティに関連付けられたイベントを検出した場合には、イベントがユーザエンティティプロファイルにおける退職ステータスに従っていないので、プロセッサは、それらのイベントを疑わしいものとして分類することができる。
【0086】
追加的なイベントが疑わしいアクティビティを含む場合には、ステップ160において、プロセッサ48は、選択されたユーザエンティティに対してアラートを発行する。一つの実施形態において、疑わしいアクティビティは、ユーザエンティティプロファイルを生成するためにプロセッサ48が使用した、第1所与のイベントログエントリ60内の第1イベントと、ステップ150でプロセッサ48が収集した、第2所与のイベントログエントリ60内の第2イベントとを組み合わせることができる。この実施形態において、第1および第2所与のイベントログエントリは、同じユーザエンティティ100に関連付けられた異なる識別子122にマッピングされた。
【0087】
アラートを発行するために、プロセッサ48は、システム管理者(図示なし)にメッセージを送信すること、または、選択されたユーザエンティティに関連するアカウントのいずれかへのアクセスを制限すること、といった動作を実行することができる。
【0088】
ステップ162において、プロセッサ48は、選択されたユーザエンティティに関連する追加的なイベントを用いて、選択されたユーザエンティティのユーザエンティティプロファイルを更新する。
【0089】
ステップ164において、未選択のユーザエンティティ100が存在する場合に(すなわち、ステップ156)、方法は、ステップ156に進む。未選択のユーザエンティティ100が存在しない場合に、方法は、終了する。
【0090】
ステップ158に戻って、プロセッサ48が、ユーザエンティティプロファイルに基づいて、追加的なイベントにおける疑わしいアクティビティを検出しなかった場合に、方法は、ステップ162に進む。
【0091】
上述の実施形態は、実施例として引用されていること、および、本発明は、上記で、特に、示され、かつ、説明されてきたものに限定されないことが理解されるだろう。むしろ、本発明の範囲は、上述の様々な特徴の組合せ、および、部分的組合せ両方、並びに、上述の説明を読めば当業者には思い浮かぶであろう、先行技術に開示されていない、それらの変形および修正を含んでいる。
【国際調査報告】