(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】サブジェクトロギング
(51)【国際特許分類】
G06F 16/21 20190101AFI20240905BHJP
【FI】
G06F16/21
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024508596
(86)(22)【出願日】2022-08-23
(85)【翻訳文提出日】2024-03-13
(86)【国際出願番号】 US2022041162
(87)【国際公開番号】W WO2023038787
(87)【国際公開日】2023-03-16
(32)【優先日】2021-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】514316916
【氏名又は名称】ワークデイ,インコーポレーテッド
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】スー・ハンセン・キャサリン
(72)【発明者】
【氏名】ハンダラガー・スマ
(72)【発明者】
【氏名】イナムダル・サンユクタ
(72)【発明者】
【氏名】スマラ・ヴァムシ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA03
5B175CA01
(57)【要約】
【解決手段】本願は、データベースシステムに格納されている情報に関するタスクを監視するための方法、システム、および、コンピュータシステムを開示している。方法は、データベースに関するタスクの実行要求を受信し、要求は、要求のためのクエリを入力するユーザに対応する識別子に関連付けられており、ユーザに対してタスクが承認されているか否かを判定し、ユーザに対してタスクが承認されているとの判定に応じて、タスクに対して返される1セットの情報を取得し、1セットの情報のサブセットを決定し、1セットの情報のサブセットは、1セットの情報の内、ユーザがアクセス許可を有する1または複数の部分を含み、タスクの実行要求のレコードを格納することを含み、レコードは、ユーザの表示、および、1セットの情報のサブセットの表示を含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
システムであって、
1または複数のプロセッサであって、
データベースに関するタスクの実行要求を受信し、前記要求は、前記要求に関連するユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定し、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得し、
前記1セットの情報のサブセットを決定し、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納するよう構成されている、1または複数のプロセッサと、前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含み、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成されている1または複数のメモリと、
を備える、システム。
【請求項2】
請求項1に記載のシステムであって、前記レコードは、さらに、前記タスクの前記実行要求が受信された時刻または日付、もしくは、前記ユーザがアクセスを許可されている前記1セットの情報が前記ユーザに提供された時刻または日付、の内の1または複数を含む、システム。
【請求項3】
請求項1に記載のシステムであって、前記レコードを格納することは、
前記レコードに関する情報をロギングキューに格納し、前記ロギングキューは、複数のタスクの実行要求にそれぞれ対応する複数のレコードについてのレコード情報を含み、
レコードをコミットすることに関連付けられている1または複数のバッチ基準が満たされたと判定し、
前記レコードをコミットすることに関連付けられている前記1または複数のバッチ基準が満たされたと判定したことに応じて、前記ロギングキュー内の前記レコードに関係するログにレコード情報をコミットすることを備える、システム。
【請求項4】
請求項3に記載のシステムであって、前記ログは、前記ログの閲覧または利用の許可を有するデータベースシステムの他のユーザによって検索可能である、システム。
【請求項5】
請求項4に記載のシステムであって、前記許可ユーザは、前記レコードが前記ログに格納されている1または複数のタスクに関して返された或るタイプの情報の1また複数に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
【請求項6】
請求項3に記載のシステムであって、前記ログは、前記データベースに関する前記タスクの前記実行要求に応じて前記ユーザに返される前記1セットの情報の内の前記サブセットを指し示しているが、格納していない、システム。
【請求項7】
請求項3に記載のシステムであって、
前記ログは、データベースシステムの許可ユーザによって検索可能であり、
前記ログは、前記データベースに関する前記タスクの前記実行要求に応じて前記ユーザに返される前記1セットの情報の内の前記サブセットを指し示しているが、格納しておらず、
前記1または複数のプロセッサは、さらに、
前記ログの少なくとも一部を他のユーザに提供し、前記ログは、前記ログが指し示す、前記1セットの情報の内の前記サブセットの少なくとも一部への選択可能リンクを提供するように提供され、
前記選択可能リンクを選択するための入力を受信したことに応じて、前記他のユーザが前記選択可能リンクの指し示す情報へのリンクに対するアクセスを許可されているか否かを判定し、
前記他のユーザが前記選択可能リンクの指し示す情報への前記リンクに対するアクセスを許可されているとの判定に応じて、前記選択可能リンクの指し示す情報への前記アクセスリンクを前記他のユーザに提供するよう構成されている、システム。
【請求項8】
請求項3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、ユーザの識別子に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
【請求項9】
請求項3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、前記レコードが前記ログに格納されている前記タスクに関して返された前記1セットの情報に関連付けられている識別子に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
【請求項10】
請求項3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、前記タスクの前記実行要求に応じて前記ユーザに返された前記1セットの情報のタイプに少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
【請求項11】
請求項3に記載のシステムであって、前記1または複数のバッチ基準は、情報がロギングキューに格納されているレコードの数を含む、システム。
【請求項12】
請求項3に記載のシステムであって、前記1または複数のプロセッサは、さらに、
データベースシステムに関連付けられている組織の一員によって要求されたタスクに関する異常を検出する目的で前記ログを解析するために、機械学習プロセスを適用し、
前記異常を検出したことに応じて、積極的対策を実行するよう構成されている、システム。
【請求項13】
請求項12に記載のシステムであって、前記機械学習プロセスは、前記データベースシステムの複数のユーザによって要求された複数のタスクに関する履歴情報を用いてトレーニングされる、システム。
【請求項14】
請求項1に記載のシステムであって、前記1セットの情報は、データベースシステムに関連付けられているテナントの1または複数のユーザまたは従業員に関するユーザ情報または従業員情報を含む、システム。
【請求項15】
請求項1に記載のシステムであって、前記情報のサブセットを決定することは、前記ユーザが、前記1セットの情報の内の1情報に関連付けられているアクセス許可を有するか否かを判定することを含む、システム。
【請求項16】
請求項15に記載のシステムであって、
前記ユーザが前記1セットの情報の内の1情報に関連付けられているアクセス許可を有するか否かを判定することは、オブジェクトまたは前記オブジェクトの属性の内の1または複数に関連付けられているアクセス許可を判定することを備え、
前記データベースは、オブジェクト指向のデータベースであり、
前記オブジェクトは、前記オブジェクト指向のデータベースに含まれている、システム。
【請求項17】
請求項1に記載のシステムであって、前記タスクは、データベースシステムに関連付けられている組織の従業員に関する報酬情報を含むレポートを取得することを含む、システム。
【請求項18】
請求項1に記載のシステムであって、
前記タスクの前記実行要求は、前記システムが前記タスクに応答する情報を前記ユーザに提供すると決定したことに応じて、前記ユーザの代わりに自動的に開始され、
前記システムは、前記ユーザ、前記システム、または、前記タスクに応答する情報のコンテキストに少なくとも部分的に基づいて、前記タスクに応答する情報を前記ユーザに提供すると決定する、システム。
【請求項19】
方法であって、
1または複数のプロセッサによって、データベースに関するタスクの実行要求を受信し、前記要求は、前記要求に関連付けられているユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定し、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得し、
前記1セットの情報のサブセットを決定し、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納することを備え、前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含む、方法。
【請求項20】
データベースシステムに格納されている情報に関するタスクを監視するためのコンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
1または複数のプロセッサによって、データベースに関するタスクの実行要求を受信するためのコンピュータ命令と、前記要求は、前記要求に関連付けられているユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定するためのコンピュータ命令と、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得するためのコンピュータ命令と、
前記1セットの情報のサブセットを決定するためのコンピュータ命令と、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納するためのコンピュータ命令と、を備え前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
ビッグデータを処理するためのシステムは、データの受信、データの格納、データの処理などのためのシステムを備える。ビッグデータ処理システムは、典型的には、1または複数のデータセット内に多数の要素を含む。1または複数のデータセットは、組織に関連付けられているユーザによってアクセスされる。例えば、ユーザは、クライアント端末へクエリを入力でき、クエリは、データ処理のためのシステムによって実行される。大規模になると、1または複数のデータセットに対して実行されるアクセスまたはクエリの数は、非常に多い。例えば、大きい組織では、1または複数のデータセットに対して実行されるトランザクション(例えば、クエリ)の数は、一日あたり500万トランザクションを超えうる。これは、データセット内でどのデータがいつアクセスされたのかを知ることが困難である点で監査の問題を引き起こす。
【図面の簡単な説明】
【0002】
以下の詳細な説明および添付の図面において、本発明の様々な実施形態を開示する。
【0003】
【
図1】本願の様々な実施形態に従って、ネットワークシステムを示すブロック図。
【0004】
【
図2】本願の様々な実施形態に従って、データベースシステムを示すブロック図。
【0005】
【
図3】本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャート。
【0006】
【
図4】本願の様々な実施形態に従って、データベースシステムに関するユーザ活動のログを示す図。
【0007】
【
図5】本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャート。
【0008】
【
図6】本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャート。
【0009】
【
図7】本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャート。
【0010】
【
図8】様々な実施形態に従って、データベースに関するユーザ活動のログにクエリするための方法を示すフローチャート。
【0011】
【
図9】様々な実施形態に従って、データベースに関するユーザ活動のログにクエリするための方法を示すフローチャート。
【0012】
【
図10】データベースシステムへのアクセスに関する異常なユーザ活動を検出するための方法を示すフローチャート。
【0013】
【
図11】データベースシステムへのアクセスに関する異常なユーザ活動を検出するための方法を示すフローチャート。
【発明を実施するための形態】
【0014】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されているプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成されている一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書で用いられているように、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するよう構成されている1または複数のデバイス、回路、および/または、処理コアを指す。
【0015】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0016】
サブジェクトロギングのためのシステムが開示されている。システムは、1または複数のプロセッサと、メモリと、を備える。1または複数のプロセッサは、データベースに関するタスクの実行要求を受信し、要求は、要求のためのクエリを入力するユーザに対応する識別子に関連付けられ、ユーザに対してタスクが承認されているか否かを判定し、ユーザに対してタスクが承認されているとの判定に応じて、タスクに対して返される1セットの情報を取得し、1セットの情報のサブセットを決定し、1セットの情報のサブセットは、1セットの情報の内、ユーザがアクセス許可を有する1または複数の部分を含み、タスクの実行要求のレコードを格納し、レコードは、ユーザの表示、および、1セットの情報のサブセットの表示を含む、よう構成されている。メモリは、プロセッサに接続され、1または複数のプロセッサに命令を提供するよう構成されている。いくつかの実施形態において、レコードは、ユーザがアクセスできるサブジェクト情報の表示と、サブジェクト情報に関する1セットの情報の内のサブセットの表示と、を含む。
【0017】
様々な実施形態によると、1または複数のデータセットに関する(例えば、それに対する)ユーザ活動を監視するためのシステムおよび/または方法が提供されている。様々な実施形態において、ユーザ活動は、ユーザが1または複数の基礎データセットからの1または複数のサブジェクト情報(例えば、テナント機密情報)に関するタスクを実行するのと同時に記録される(例えば、ユーザ活動は、1または複数のデータセットに対して実行されるクエリの入力/実行と同時に記録される)。記録されたユーザ活動に関するログは、1または複数の基礎データセットからの1または複数のサブジェクト情報(例えば、テナント機密情報)に関するタスクをユーザが実行したことに関連してユーザに暴露された可能性のある情報のサブセットまたは情報のタイプを少なくとも示す情報を含んでよい。いくつかの実施形態において、ログは、タスクが実行された1または複数のデータセットに格納されている個人情報またはテナント機密情報を暴露した可能性のあるタスクに関するユーザ活動のレコードを含んでよい。ログは、実行されたタスクに関してユーザに暴露された(例えば、返された)可能性のある情報または情報のタイプを決定することに関連して、検索可能であってよい。いくつかの実施形態において、システムまたは方法は、ユーザ活動のレコードが異常挙動を示す(例えば、ユーザが悪意のある行動に従事していること、または、ユーザのアカウントが不正アクセスされたことを表示する)か否かを判定するために、ログを解析してよい。
【0018】
本明細書で用いられているように、個人情報(PIIと呼ばれてもよい)は、特定の個人を識別するために潜在的に利用されうる任意のデータを含みうる。例は、フルネーム、社会保障番号、運転免許証番号、銀行口座番号、パスポート番号、電子メールアドレス、などを含む。
【0019】
本明細書で用いられているように、テナント機密情報は、テナントに関する機密情報を含みうる。テナントは、サービス型ソフトウェアプロバイダのクライアントなど、データベースに関連付けられている組織であってよい。機密情報は、テナントの極秘情報および専有情報を含んでよい。テナント機密情報の例は、テナントに関連付けられているユーザ(例えば、テナントの従業員、契約者など)のPII、報酬情報、企業秘密、研究開発計画、などを含みうる。
【0020】
本明細書で用いられているように、日付は、特定の日、月、および/または、年に対応し得る。日付という用語は、日の特定の時刻、もしくは、特定の日、月、および/または、年の時刻も含みうる。
【0021】
様々な実施形態によると、システムは、データベースに関するタスクの実行要求を受信し、ここで、要求は、要求のためのクエリを入力するユーザに対応する識別子に関連付けられている。システムは、ユーザに対してタスクが承認されているか否かを判定してよい。ユーザに対してタスクが承認されているとの判定に応じて、システムは、タスクに対して返される1セットの情報を取得してよい。システムは、1セットの情報のサブセットを決定してよく、ここで、1セットの情報のサブセットは、1セットの情報の内、ユーザがアクセス許可を有する1または複数の部分を含む。システムは、タスクの実行要求のレコードを格納してよく、ここで、レコードは、ユーザの表示と、1セットの情報のサブセットの表示と、を含む。いくつかの実施形態において、レコードは、ユーザがアクセスできるサブジェクト情報の表示と、サブジェクト情報に関する1セットの情報の内のサブセットの表示と、を含む。例えば、サブジェクト情報は、テナントに関連付けられている個人(例えば、テナントの役員)に対応し得る。サブジェクト情報は、かかる個人のPIIであってよい。いくつかの実施形態において、レコードは、タスクの実行要求がユーザに関連付けられていること、PIIがユーザに暴露されたこと、および、PIIの対象となる個人(例えば、上記の例におけるテナントの役員)の表示を含む。
【0022】
様々な実施形態によると、タスクの実行要求の記レコードは、ユーザ活動のログに格納されてよい。ユーザ活動のログは、1または複数の所定のフィールド(例えば、ユーザの表示(ユーザ識別子など)、ユーザに返された可能性のある1セットの情報のサブセットの表示、フィールド名の表示、フィールド名、など)に関してインデックス化されてよい。1または複数の所定のフィールドは、1または複数のデータセットに関連付けられている管理者またはテナントなどによって構成可能であってよい。1または複数の所定のフィールドの例は、タスクが実行された日付および/または時刻、タスクの実行要求に関連付けられているユーザの表示(例えば、雇用者番号、ユーザ名、電子メールアドレス、ログイン識別子など、ユーザ識別子)、タスクの実行要求の送信元のIPアドレス、タスクの実行要求の送信元の端末の識別子、タスクのタイプの表示、情報のタイプのターゲットの表示(例えば、返された可能性のある情報に関連付けられている部署、情報が返された可能性のあるカテゴリまたは下部組織、要求されたレポートのタイプ、など)、返された可能性のある情報のサブジェクト(例えば、対応する情報が返された可能性のある個人(役員)、など)、実行された活動のタイプ(例えば、読み出し、書き込み、削除、など)、を含むが、これらに限定されない。様々なその他のタイプの情報が、所定のフィールドとして実装されてもよい。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。例えば、ログ自体は変更不可能ではない(例えば、ログは、新たなレコードがログに追加される点で、時間と共に変化する)が、レコードは、ログに挿入されると変更不可能である。
【0023】
様々な実施形態によると、対応するタスクの実行要求にそれぞれ関係する複数のレコードまたは情報が同時に、ログにコミット(例えば、ユーザ活動のログにコミット)されてよい。例えば、複数のレコードは、ロギングキューに格納されてよく、ロギングキュー内のレコードの少なくとも一部が、バッチにコミットされてよい。レコードの少なくとも一部を含むバッチは、バッチ基準が満たされた旨の判定に応じて、コミットされてよい。いくつかの実施形態において、レコードを格納することは、レコードに関する情報をロギングキューに格納し、レコードをコミットすることに関連付けられている1または複数のバッチ基準が満たされたと判定し、1または複数のバッチ基準が満たされたと判定したことに応じて、ロギングキュー内のレコードに関する情報をログにコミットすることを含む。いくつかの実施形態において、1または複数のバッチ基準は、ロギングキュー内のレコードの閾値数を含む(例えば、ロギングキューがレコードの閾値数以上の数のレコードを含むとの判定に応じて、バッチ基準は、満たされていると見なされてよい)。いくつかの実施形態において、1または複数のバッチ基準は、ロギングキュー内のレコードの最後のコミットから経過した時間の閾値量を含んでもよい。様々なその他の基準が、1または複数のバッチ基準として実装されてもよい。
【0024】
様々な実施形態によると、ログは、データベースシステムの許可ユーザによって検索可能であってよい。一例として、許可ユーザは、ログを閲覧/利用する許可を有する管理者またはその他のユーザであってよい。許可ユーザは、ユーザ認証情報および/または許可ユーザに対応するアクセス許可に少なくとも部分的に基づいて認証されてよい。いくつかの実施形態において、許可ユーザは、レコードがログに格納されている1または複数のタスクに関して返された或るタイプの情報の1また複数に少なくとも部分的に基づいて、ログをクエリしてよい。ログは、許可ユーザのアクセス許可に基づいて許可ユーザに提供される情報を制限するように、情報を提供する。一例として、ログは、情報(例えば、タスクの実行に応じてユーザに返された可能性のある情報)を指し示してよいが、データベースに関するタスクの実行要求に応じてユーザに返される1セットの情報の内のサブセットを格納していない。ログは、許可ユーザがタスクの実行に関連してユーザに返された可能性のある基礎情報にアクセスを試みることができるリンク(例えば、ハイパーリンク)を含んでよい。いくつかの実施形態において、ログの少なくとも一部は、別のユーザ(例えば、管理者など)に提供され、ログは、1セットの情報の内のログが指し示す部分の少なくとも一部への選択可能リンクを提供するように提供される。選択可能リンクを選択するための入力を受信したことに応じて、システムまたは方法(例えば、セキュリティシステムまたは承認システム)は、他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているか否かを判定してよい。他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているとの判定に応じて、他のユーザは、選択可能リンクの指し示す情報へのアクセスを許可されうる。
【0025】
様々な実施形態によると、ユーザ活動のログは、検索可能であってよい。ログは、ユーザの識別子に少なくとも部分的に基づいて検索可能であってよい。例えば、特定のユーザによって実行されたタスク、または、特定のユーザに提供された可能性のある情報を決定することに関連して、ログは、特定のユーザに対応するユーザ識別子などに基づいて検索されてよい。いくつかの実施形態において、ログは、レコードがログに格納されている1または複数のタスクに関して返された情報に関連付けられている識別子に少なくとも部分的に基づいて、検索可能であってよい。例えば、許可ユーザは、(例えば、所定の期間にわたって、もしくは、特定の日付および/または時間の制約に関して、など)、すべてのユーザ、または、記録された実行済みタスクに応じて返された可能性のあるタスクを、ログで検索してよい。一例として、誰が役員報酬にアクセスしえたのかをユーザが決定したい場合、ログは、実行済みタスクに応じて返された可能性のある情報のタイプとしての役員報酬に基づいて、検索されてよい。役員報酬を返した可能性のあるタスクについてのログへのクエリに応じて、許可ユーザは、役員報酬が返された可能性のある実行済みのタスクに関する情報を含むレポートを提供されうる(例えば、情報は、日付および/または時刻、タスクの実行を要求したユーザ、タスクの実行要求の送信元のIPアドレス、タスクの実行要求の送信元の端末、タスクの実行要求の送信元の端末のコンテキスト、情報がユーザに返された可能性のあるタスクのタイプ、などを含んでよい)。レポートに含まれるフィールドは、例えば、(例えば、レポートの要求時に)許可ユーザによって、もしくは、デフォルトのレポート構成の定義などに関連して管理者または組織によって、構成可能であってよい。
【0026】
様々な実施形態によると、ユーザ活動のログは、データ漏洩を判定することおよび/または異常挙動を検出することに関連して用いられてよい。いくつかの実施形態において、機械学習プロセスが、異常挙動を決定することに関連して用いられる。例えば、機械学習プロセスは、タスクの実行要求が異常であると判定し得る。タスクの実行要求が異常であるとの判定は、タスクの実行実行要求に関連付けられている情報がタスクの実行要求のなされたコンテキスト(例えば、タスクを実行することを要求しているユーザ、タスクの実行要求の送信元の位置、タスクの実行要求が受信された時間、判定済みの異常なタスクの実行要求と同時に受信されたタスクの実行要求のセット、判定済みの異常なタスクの実行要求が含まれる一連のタスクの実行要求、など)に関して統計的異常値であるとの判定に少なくとも部分的に基づいてなされる。
【0027】
データセットに関するユーザ活動を記録するための関連技術のシステムは、1または複数のデータセットに対してユーザによって実行されるタスクのための入力パラメータ(例えば、ユーザによって入力されたクエリ)を記録することを含む。かかる関連技術のシステムによると、管理者または組織は、更新、閲覧、および、ダウンロードなど、特定のユーザがどのタスクを実行したのかをクエリすることができる。しかしながら、かかる関連技術のシステムに従ったユーザ活動の記録は、管理者または組織が、ユーザに提供された情報(例えば、1または複数のデータベースに対して実行されたタスクの結果)を容易または効果的に決定できる方法またはシステムを提供しない。例えば、かかる関連技術のシステムに関連付けられている管理者または組織は、ユーザ活動に関する履歴情報を取得し、特定のユーザ活動が実行された日付および/または時刻に関するデータセットのためのデータを復元し、ユーザがその日付および/または時刻に実行したタスクを再実行することを求められる。先述の関連技術のシステムは、コンプライアンスの目的には十分でありうるが、かかるシステムは、監査能力を提供せず、多数のトランザクションに合った規模ではなく、ユーザ活動の積極的な監視およびデータセットに関する異常挙動のほぼリアルタイムの検出を許容しない。
【0028】
他の関連技術のシステムは、データベースレベルまたはデータベーステーブルレベルでの追跡をアクティブ化することによってユーザ活動を記録し得る。追跡がアクティブ化された場合、データベースに対する要求すべてが、サーバ(例えば、データベース)に記録される。要求のロギングは、ほぼリアルタイムで実行されるが、かかるロギングは、ログフォーマットであり、対応するログに格納されるデータが膨大になる規模である。追跡データは、ログフォーマットに格納されるので、ユーザ活動に関する情報は、インデックス化されない(例えば、データは、インデックス化された報告可能なフォーマットではない)。さらに、データベースレベルまたはデータベーステーブルレベルでの追跡のアクティブ化は、結果として、管理者または組織が監視を望むクエリに対して最適化されるのではなく、すべてのSQLクエリに一般的なデータをもたらす。
【0029】
関連技術のシステムと対照的に、様々な実施形態は、ほぼリアルタイムに1または複数のデータセットに関するユーザ活動のログを生成する。ログは、1または複数のデータセットに関して実行されたタスクに関連付けられているユーザを示す情報(例えば、ユーザ識別子)と、ユーザに提供された情報の少なくとも一部または情報のタイプの表示と、を含んでよい。ログは、1または複数の所定のフィールドに少なくとも部分的に基づいて、インデックス化されてよい。いくつかの実施形態において、ログは、異常検出に関連して、検索可能または用いられてよい。例えば、ログは、リアルタイムまたはほぼリアルタイムで解析されてよい。様々な実施形態に従ってユーザ活動を監視するための方法およびシステムは、実行されたタスクに応じてユーザに返された可能性のある情報を決定するため、および/または、ユーザが異常挙動に従事しているか否かを判定するために、ユーザ活動を解析するのに、より拡張可能かつ効率的でありうる。
【0030】
システムは、データにアクセスしたユーザのより有効な識別を可能にすることによって、コンピュータを向上させる。システムは、プロセッサおよびメモリリソースへの負荷を低減しつつ、より効率的な格納を行うために、バッチ処理を用いてアクセスデータを格納する。システムは、データへの異常アクセスのパターンの識別を可能にする。いくつかの実施形態において、システムは、アクセスのパターンに基づいて、警告を提供し、および/または、アクセスを阻止する。
【0031】
図1は、本願の様々な実施形態に従って、ネットワークシステムを示すブロック図である。
図1に示す例において、システム100は、サーバデータベースシステム105と、1または複数のユーザシステム120および/または130と、管理者システム125と、を含む。システム100は、さらに、1または複数のユーザシステム120および130ならびに/もしくは管理者システム125がデータベースシステム105と通信するための1または複数のネットワーク(ネットワーク110および/またはネットワーク115など)を含む。様々な実施形態において、ネットワーク110および/または115は、有線ネットワークおよび/または無線ネットワーク(セルラーネットワーク、無線ローカルエリアネットワーク(WLAN)、または、任意のその他の適切なネットワークなど)の内の1または複数を含む。システム100は、さらに、セキュリティシステム135を含む。いくつかの実施形態において、データベースシステム105および/またはセキュリティシステム135は、サーバによって実装される。サーバは、単一のサーバまたは複数のサーバに対応し得る。同様に、システム100は、様々なその他のシステムまたは端末を含んでもよい。
【0032】
様々な実施形態において、ユーザシステム120および/またはユーザシステム130は、パーソナルコンピュータ、携帯電話、タブレット、または、任意のその他の適切なユーザデバイスなど、1または複数のクライアント端末によって実装される。ユーザシステム120および/またはユーザシステム130は、ウエブインターフェースを介してデータベースシステム105および/またはセキュリティシステム135と通信する。例えば、ユーザシステム120および/またはユーザシステム130は、ユーザシステム120および/またはユーザシステム130上にインストールされたウェブブラウザを介して、データベースシステム105および/またはセキュリティシステム135と通信する。別の例として、ユーザシステム120および/またはユーザシステム130は、ユーザシステム120および/またはユーザシステム130上で実行するアプリケーションを介して、スイッチデータベースシステム105および/またはセキュリティシステム135と通信する。ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105にアクセスする。例えば、ユーザは、ユーザシステム120を用いて、データベースシステム105上の人材データベースデータにアクセスし、ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105上の財務データベースデータにアクセスし、ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105上のデータを修正し、ユーザは、ユーザシステム120を用いて、データベースシステム105上のデータを消去する、などである。いくつかの実施形態において、ユーザは、さらに、ユーザシステム120またはユーザシステム130を用いて、直接的に、もしくは、データベースシステム105またはセキュリティシステム135を介して、ユーザ活動のログに。
【0033】
管理者システム125は、管理者が利用するための管理者システムを含む。例えば、管理者システム125は、通信、データアクセス、計算などのためのシステムを含む。管理者は、管理者システム125を用いて、データベースシステム105を維持する。例えば、管理者は、データベースシステム105に対するサービスを開始および/または停止し、データベースシステム105を再起動し、データベースシステム105上にソフトウェアをインストールし、データベースシステム105に対してデータを追加、修正、および/または、除去する、などのために、管理者システム125を利用する。管理者システム130は、ウエブインターフェースを介してデータベースシステム105および/またはセキュリティシステム135と通信する。例えば、管理者システム125は、管理者システム125上にインストールされたウェブブラウザを介してデータベースシステム105および/またはセキュリティシステム135と通信する。別の例として、管理者システム125は、管理者システム125上で実行するアプリケーションを介してデータベースシステム105および/またはセキュリティシステム135と通信する。
【0034】
データベースシステム105は、1または複数のデータセットを格納している。様々な実施形態において、1または複数のデータセットは、人材データ、財務データ、組織計画データ、または、任意のその他の適切なデータを含む。いくつかの実施形態において、データベースシステム105は、複数のテナントのための1または複数のデータセットを格納している。例えば、データシステム105は、サービス型ソフトウェアのプロバイダの複数のテナント(顧客など)のためのサービス型ソフトウェア(例えば、サービスのためのデータを格納するデータベース)の少なくとも一部をホストする。様々な実施形態において、テナントは、組織(企業、政府機関、組織の下部組織(例えば、部署)、または、任意のその他の適切な組織、など)を含む。いくつかの実施形態において、データベースシステム105は、PII(例えば、テナントに関連付けられている人物のPII)などのテナント機密情報を含む1または複数のデータセットを格納している。例えば、データベースシステム105は、テーブルベースのデータ構造、オブジェクトベースのデータ構造などに、データを格納するためのデータベースシステムを含む。様々な実施形態において、データベースシステム105は、ビジネスデータベースシステム、人材データベースシステム、財務データベースシステム、大学データベースシステム、医療データベースシステム、製造データベースシステム、または、任意のその他の適切なシステムを含む。いくつかの実施形態において、データベースシステム105は、オブジェクト指向のデータベースシステムを含む。
【0035】
様々な実施形態によると、ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105に格納されているデータ(例えば、1または複数のデータセット)に関する1または複数のタスクを実行する。例えば、ユーザは、データベースシステム105でタスクを実行する(例えば、データセットに対するクエリを実行する)ためのクエリまたは要求をユーザシステム120に入力し、データベースシステム105は、ネットワーク110などを介してユーザシステム120から、タスクを実行するためのクエリまたは要求を受信する。クエリまたはタスクの実行要求を受信したことに応じて、データベースシステム105は、タスクを実行し、ユーザシステム120を介してユーザへ結果を提供する。いくつかの実施形態において、結果は、クエリまたはタスクの実行に応答する情報または情報のセットを含む。いくつかの実施形態において、結果は、クエリまたはタスクの実行に応答する情報を含むレポート、もしくは、クエリまたはタスクの実行に応答する情報を指し示す選択可能な要素(例えば、ハイパーリンクなどのリンク)を含む。
【0036】
いくつかの実施形態において、データベースシステム105は、ユーザ活動のログを格納する。例えば、データベースシステム105は、データベースシステム105に格納されている1または複数のデータベース(例えば、1または複数のデータセット)に関するユーザ活動のログを格納する。いくつかの実施形態において、データベースシステム105は、ユーザシステム120またはユーザシステム130のユーザから、タスクを実行する(例えば、データセットに対するクエリを実行する)要求を受信すると同時に、または、タスクの実行と同時に、ユーザ活動の記録を格納する。いくつかの実施形態において、ユーザ活動の記録は、ログ(ユーザ活動のログなど)に格納される。いくつかの実施形態において、ログは、1または複数の所定のフィールド(例えば、ユーザの識別子、タスクまたはタスクのタイプの表示、タスクの実行の結果の表示、など)に従ってインデックス化される。いくつかの実施形態において、ログは、1または複数の許可されたユーザによって検索可能である。例えば、許可されたユーザは、特定のユーザのユーザ活動、もしくは、特定の情報タイプまたは情報が返されたユーザのレポートを決定するために、ログを検索する。
【0037】
いくつかの実施形態において、管理ユーザまたは別のユーザ(例えば、許可されたユーザ)が、データベースシステム105によって格納されているログを検索する。例えば、管理ユーザは、ログをクエリまたは検索することに関連して、管理者システム125へクエリを入力する。例えば、ユーザは、ログをクエリまたは検索することに関連して、ユーザシステム120へクエリを入力する。ログのクエリに関連付けられているパラメータを受信したことに応じて、データベースシステム105またはセキュリティシステム135は、ログのクエリまたは検索に関する結果を返す。一例として、管理ユーザが、第1日付と第2日付との間の役員報酬に関する情報へアクセスしたユーザの表示についてログをクエリした場合、データベースシステム105またはセキュリティシステム135は、役員報酬がユーザに暴露されたユーザ活動のログにおける記録に関する情報を含むレポートを返す(例えば、レポートは、第1日付と第2日付と間に実行されたタスクに対応する記録についての情報を含む、など)。
【0038】
様々な実施形態によると、セキュリティシステム135は、データベースシステム105に関するセキュリティを提供する。例えば、セキュリティシステム135は、特定がアクセスを許可されている情報(または情報のセット、など)を決定する。一例として、セキュリティシステム135は、情報に対するユーザ許可のマッピングに少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。別の例として、セキュリティシステム135は、情報(例えば、1つの情報、または、複数の情報)に対応するオブジェクトが、ユーザがかかるオブジェクトへアクセスする許可を有することを示す属性または情報を含むとの判定に少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。いくつかの実施形態において、セキュリティシステム135は、データベースシステム105にアクセスしているユーザを認証し、もしくは、セキュリティシステム135は、ユーザが特定の活動を実行すること、または、特定の情報へアクセスすることを許可されているか否かを判定することに関連して、ユーザに関連付けられている認証情報を別の方法で利用する。
【0039】
いくつかの実施形態において、タスクの実行(例えば、タスクを実行するユーザ要求に応じてデータセットに対するタスクを実行したこと、ユーザ活動のログに対するクエリを実行したこと、など)に応じて、データベースシステム105は、タスクの実行に応答する情報を決定し、セキュリティシステム135は、タスクの実行要求/クエリに関連付けられているユーザが必要なアクセス許可を有する、タスクの実行に応答するその情報の部分を決定する。いくつかの実施形態において、セキュリティシステム135は、情報をフィルタリングして、要求側ユーザがアクセスを許可されている情報のみを出力する。
【0040】
様々な実施形態によると、異常検出処理が、データベースシステム105に格納されているデータに関する異常挙動(例えば、特定のテナント機密情報へのアクセスなど、異常なユーザ挙動)を検出することに関連して実行される。異常検出処理は、データベースシステム105および/またはセキュリティシステム135で実行される。いくつかの実施形態において、機械学習モジュールまたは機械学習プロセスが、異常検出処理に関連して実装される。例えば、機械学習モジュールまたはプロセスは、履歴ユーザ活動、または、データベースシステム105に格納されている1または複数のデータセットに関する活動のデータセット(もしくは、複数の同様の状況のテナントまたは同様の情報を格納する複数のテナントなどからのデータセットなど、データベースシステム105に格納されている1または複数のデータセットと同様の1または複数のデータセット)を用いて、トレーニングされる。異常検出プロセスは、ユーザ活動のログ内の記録が異常挙動に対応するか否かを判定することに関連して、ユーザ活動のログ内の情報を解析する。いくつかの実施形態において、異常検出は、バックグラウンドで実行し、または、データベースシステム105に格納されているデータに関するタスクの実行と同時に実行する。例えば、異常検出プロセスは、データベースシステム105に格納されているデータに関するタスクの実行に対してリアルタイムまたはほぼリアルタイムに(例えば、ユーザ活動と同時に)、異常挙動を検出する。
【0041】
異常挙動を検出したことに応じて、1または複数の積極的対策が実行または開始される。積極的対策は、データベースシステム105および/またはセキュリティシステム135によって実行される。積極的対策の例は、管理ユーザへの通知、テナントに関連付けられている1または複数の特定のユーザ(例えば、データプライバシー責任者、人材担当者、役員、など)への通知、異常挙動が検出されたユーザのアクセス権の制限(例えば、少なくともかかる制限が管理ユーザによって解除されるまでなど、データベースシステム105に関する将来のクエリまたはタスクの実行を制限する)を含む。いくつかの実施形態において、1または複数の積極的対策は、異常挙動の検出に応じて自動的に実行される。いくつかの実施形態において、プロンプトが、1または複数の積極的対策の起動のために管理ユーザに提供される。例えば、プロンプトは、異常挙動の通知、実行される1または複数の積極的対策の推奨、および/または、積極的対策を開始するための選択可能な要素を含む。
【0042】
いくつかの実施形態において、データベースシステム105およびセキュリティシステム135は、単一のサーバまたは複数のサーバに実装される。例えば、データベースシステム105およびセキュリティシステム135は、同じサーバまたはサーバのセットで実行する異なるモジュールである。
【0043】
図2は、本願の様々な実施形態に従って、データベースシステムを示すブロック図である。いくつかの実施形態において、データベースシステム200は、
図1のシステム100のデータベースシステム105を含み、または、それに対応する。システム200は、
図3の処理300、
図5の処理500、
図6の処理600、
図7の処理700、
図8の処理800、
図9の処理900、および/または、
図10の処理1000を実行してよい。システム200は、
図4のログ400を実装してよい。
【0044】
図の例において、システム200は、1または複数のデータセット内のデータを管理し、ならびに/もしくは、1または複数のデータセットに関するユーザ活動を監視することに関連して、1または複数のモジュールを実装する。システム200は、通信インターフェース205、1または複数のプロセッサ210、ストレージ215、ならびに/もしくは、メモリ220を備える。1または複数のプロセッサ210は、通信モジュール225、タスク承認モジュール230、タスク実行モジュール235、情報アクセスモジュール240、ロギングモジュール245、ログクエリモジュール250、異常検出モジュール255、および/または、ユーザインターフェースモジュール260、の内の1または複数を備える。
【0045】
いくつかの実施形態において、システム200は、通信モジュール225を備える。システム200は、通信モジュール225を用いて、様々なクライアント端末またはユーザシステム(ユーザシステム120、ユーザシステム130、および/または、管理者システム125など)と通信する。例えば、通信モジュール225が、通信される情報を通信インターフェース205に提供する。別の例として、通信インターフェース205が、システム200によって受信された情報を通信モジュール225に提供する。通信モジュール225は、様々なクライアント端末またはユーザシステムなどから、1または複数のクエリまたはタスクの実行要求を受信するよう構成されている。タスクを実行するための1または複数のクエリまたは要求は、1または複数のデータセットに格納されている情報に関するものである。通信モジュール225は、情報(実行されることを要求された1または複数のクエリまたはタスクに応答する情報など)を様々なクライアント端末またはユーザシステムに提供するよう構成されている。いくつかの実施形態において、通信モジュール225は、1または複数のレポートの形態で、ならびに/もしくは、1または複数のユーザインターフェース(例えば、ユーザシステム120が表示するインターフェース)を介して、様々なクライアント端末またはユーザシステムへ情報を提供する。
【0046】
いくつかの実施形態において、システム200は、タスク承認モジュール230を備える。様々な実施形態によると、タスク承認モジュールは、
図1のシステム100のセキュリティシステム135に実装される。システム200は、タスクまたはクエリが許可または承認されるか否かを決定することに関連して、タスク承認モジュール230を用いる。いくつかの実施形態において、タスクの実行要求を受信したことに応じて(例えば、クエリを受信したことに応じて)、システム200は、ユーザがタスクを実行することを許可される(例えば、タスクを要求することを許可される)か否かを決定することに関連して、タスク承認モジュール230を用いる。タスク承認モジュール230は、ユーザ(例えば、ユーザのアカウント、ユーザの役職、ユーザの属性、など)に関連付けられている許可のセットに少なくとも部分的に基づいて、ユーザがタスクを実行することを許可される(例えば、タスクを要求することを許可される)か否かを決定する。いくつかの実施形態において、タスク承認モジュール230は、タスクに対する許可のマッピングに関するルックアップを実行することに少なくとも部分的に基づいて、タスク/クエリがユーザにとって実行を許可されるか否かを決定する。タスク承認モジュール230がタスク(例えば、クエリ)の許可を決定したことに応じて、システム200はタスクを実行する。タスクが許可されないと決定したことに応じて、システム200は、タスクの実行を制限する。例えば、システム200は、タスクが許可されないことを示す通知を提供する。いくつかの実施形態において、通知は、承認時にユーザのタスクの実行を許可し得る認証情報をユーザが入力することを可能にする選択可能な要素を含む。いくつかの実施形態において、システム200は、タスクがクライアント端末またはシステム(例えば、ユーザシステム120)に許可されないことを示す通知を提供する。
【0047】
いくつかの実施形態において、システム200は、タスク実行モジュール235を備える。システム200は、タスク実行モジュール235を用いて、タスクを実行する。例えば、タスクが1または複数のクエリパラメータを含むクエリである場合、タスク実行モジュール235は、対応する1または複数のデータセットに対してクエリを実行し、タスク実行モジュール235は、1または複数のデータセットに含まれる情報の中からクエリに応答する情報を決定する。いくつかの実施形態において、タスク実行モジュール235は、タスクの実行要求を出したユーザに関係なく、タスク(例えば、クエリ)の実行に応答する情報を決定する。例えば、システム200は、さらに、タスクの実行に応答する情報を最初に決定した後に、ユーザおよび/またはユーザアクセス許可に基づいて情報をフィルタリングする。タスク実行モジュール235は、タスクパラメータ(ユーザによって入力されたクエリ文字列など)を分解して、タスクパラメータの少なくとも一部に少なくとも部分的に基づいてタスクを実行する。
【0048】
いくつかの実施形態において、システム200は、情報アクセスモジュール240を備える。システム200は、情報アクセスモジュール240を用いて、ユーザがアクセスを許可されているタスクの実行に応答する情報の少なくとも一部(例えば、ユーザに返されることを許可されている情報)を決定する。情報アクセスモジュール240は、
図1のシステム100のデータベースシステム105および/またはセキュリティシステム135によって実装される。いくつかの実施形態において、情報アクセスモジュール240は、タスクへの実行に応答する情報をセキュリティシステムに提供し、ユーザがアクセスを許可されているかかる情報のサブセットを受信する。例えば、セキュリティシステムは、ユーザが適切なアクセス許可を有するかかる情報のみを含むように、応答する情報をフィルタリングする。
【0049】
いくつかの実施形態において、システム200は、ロギングモジュール245を備える。システム200は、ロギングモジュール245を用いて、ユーザ活動(1または複数またはそれより多いデータセットに関するユーザ活動など)を記録する。様々な実施形態において、ロギングモジュール245は、
図1のシステム100のデータベースシステム105および/またはシステム100のセキュリティシステム135によって実装される。様々な実施形態によると、ロギングモジュール245は、1または複数またはそれより多いデータセットに関するユーザ活動の1または複数の記録を格納するよう構成されている。一例として、1または複数の記録は、ログに格納される。別の例として、1または複数の記録は、ロギングキューに(例えば、一時的に)格納される。いくつかの実施形態において、ロギングキュー内の複数のレコード(例えば、情報)は、1または複数のバッチ基準が満たされたことなどに応じて、バッチとしてログにコミットされる。1または複数のバッチ基準は、ロギングキュー内のレコードの閾値数、ログへのレコードの最後のコミット以来経過した時間、日付および/または時刻、などに少なくとも部分的に基づいている。様々な実施形態において、ロギングキューは、ローカルにまたはキャッシュ内に格納され(例えば、ロギングキューは、セキュリティシステム135に格納されてよい)、ログは、リモートストレージおよび/またはインデックス付きストレージに格納され(例えば、ログは、データベースシステム125に格納されてよい)、もしくは、任意のその他の適切なシステムに格納される。レコードのキューイング(例えば、ユーザ活動のキューイング)および/またはスレッドプール最適化は、システム(テナントデータ(例えば、顧客従業員レコードなど)の取得およびそれに関する報告も行うシステムなど)に悪影響を与えることなしに、多くのユーザ(例えば、数百万以上のユーザなど)のビューに対するレコードのロギングを可能にする。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。
【0050】
いくつかの実施形態において、システム200は、ログエリモジュール250を備える。システム200は、ログクエリモジュール250を用いて、ログを検索する(例えば、ログに対してクエリを実行する)。様々な実施形態において、ログクエリモジュール250は、
図1のシステム100のデータベースシステム105および/またはシステム100のセキュリティシステム135によって実装される。いくつかの実施形態において、ログクエリモジュール250は、ログ(例えば、ユーザ活動のログ)に関するクエリまたはタスクの実行要求を受信するよう構成されている。例えば、ログクエリモジュール250は、通信インターフェース205などから、クエリまたはタスクの実行要求を受信し、ログに関してクエリしまたはタスクを実行するための1または複数のパラメータを決定するために、クエリまたはタスクの実行要求を分解する。ログに関するクエリまたはタスクの実行要求を受信したことに応じて、ログクエリモジュール250は、ログに関するクエリまたはタスク実行を行う。例えば、ログクエリモジュール250は、クエリまたはタスクに応答する情報を、対応するログから決定する。システム200は、クエリまたはタスクに応答する情報をユーザに(例えば、ユーザシステム120、管理者システム125、などに)提供する。例えば、ユーザへのクエリまたはタスクに応答する情報は、レポート内で提供される。
【0051】
いくつかの実施形態において、システム200は、異常検出モジュール255を備える。システム200は、異常検出モジュール255を用いて、1または複数のデータセットに関する異常ユーザ活動(例えば、異常クエリなど)などの異常挙動を検出する。様々な実施形態において、異常検出モジュール255は、
図1のシステム100のデータベースシステム105および/またはシステム100のセキュリティシステム135によって実装される。異常ユーザ活動は、ロギングキュー内のレコードおよび/またはログ内のレコード(例えば、ロギングキューからログにコミットされたレコード)など、ユーザ活動に関するレコードの解析に少なくとも部分的に基づいて検出される。様々な実施形態によると、ユーザ活動のログは、データ漏洩を判定することおよび/または異常挙動を検出することに関連して用いられる。いくつかの実施形態において、機械学習プロセスが、異常挙動を決定することに関連して用いられる。例えば、機械学習プロセスは、タスクの実行要求が異常であると判定する。タスクの実行要求が異常であるとの判定は、タスクの実行実行要求に関連付けられている情報がタスクの実行要求のなされたコンテキスト(例えば、タスクを実行することを要求しているユーザ、タスクの実行要求の送信元の位置、タスクの実行要求が受信された時間、判定済みの異常なタスクの実行要求と同時に受信されたタスクの実行要求のセット、判定済みの異常なタスクの実行要求が含まれる一連のタスクの実行要求、など)に関して統計的異常値であるとの判定に少なくとも部分的に基づいてなされる。
【0052】
いくつかの実施形態において、システム200は、ユーザインターフェースモジュール260を備える。システム200は、ユーザシステム120、ユーザシステム130、および/または、管理者システム125などを介してユーザに提供される情報(またはその表示)を構成することに関して、ユーザインターフェースモジュール260を用いる。ユーザインターフェースモジュール260は、
図1のシステム100のデータベースシステム105によって実装される。いくつかの実施形態において、ユーザインターフェースモジュール260は、ユーザまたは管理者によって用いられるクライアント端末に表示されるユーザインターフェース(クライアント端末でウェブブラウザに提供されるインターフェースなど)を構成する。いくつかの実施形態において、ユーザインターフェースモジュール260は、データベースシステム105に関して実行されたクエリまたはタスク(例えば、1または複数のデータセットに対して実行されたクエリまたはタスク)に応答する情報の1または複数のレポートを構成するなど、ユーザに提供される情報を構成する。
【0053】
様々な実施形態によると、ストレージ215は、ファイルシステムデータ265、タスクデータ270、および/または、ログデータ275、の内の1または複数を含む。ストレージ215は、共有ストレージ(例えば、ネットワークストレージシステム)および/またはデータベースデータおよび/またはユーザ活動データを含む。いくつかの実施形態において、ファイルシステムデータ265は、1または複数のデータセット(例えば、1または複数のテナントに対する1または複数のデータセットなど)など、データベースを含む。ファイルシステムデータ265は、機械学習プロセスをトレーニングするためのデータセット、ユーザ活動に関する履歴情報、人材データベース、財務データベースなど、データを含む。いくつかの実施形態において、タスクデータ270は、実行されているタスクまたはクエリに関する情報、および/または、実行されたタスクまたはクエリの履歴情報を含む。いくつかの実施形態において、ログデータ275は、ログ(ユーザ活動のログなど)を含む。ログは、クエリまたはタスクに関連してユーザに暴露された情報の概要、ならびに/もしくは、クエリまたはタスクに関連してユーザに暴露された情報および/またはクエリまたはタスクに(例えば、クエリ/タスクが実行された日付および/または時刻の時点で)応答する情報へのポインタ、を示す情報を含む。ログデータ275は、1または複数の所定のフィールドなどに従ってインデックス化されたログなど、インデックス化されたデータを格納する。
【0054】
様々な実施形態に従って、メモリ220は、アプリケーション実行データ280を含む。アプリケーション実行データ280は、アプリケーションを実行することに関連して取得または利用されるデータを含む。実施形態において、アプリケーションは、クエリまたはタスクを受信および/または実行すること、レポートを生成しおよび/または実行されたクエリまたはタスクに応答する情報を構成すること、ならびに/もしくは、クエリまたはタスクに応答する情報をユーザに提供すること、の内の1または複数を実行する1または複数のアプリケーションを含む。他のアプリケーションは、任意のその他の適切なアプリケーション(例えば、インデックスメンテナンスアプリケーション、通信アプリケーション、チャットアプリケーション、ウェブブラウザアプリケーション、文書準備アプリケーション、レポート準備アプリケーション、ユーザインターフェースアプリケーション、データ解析アプリケーション、異常検出アプリケーション、ユーザ認証アプリケーション、など)を含む。
【0055】
図3は、本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャートである。いくつかの実施形態において、処理300は、
図1のシステム100および/または
図2のシステム200の少なくとも一部によって実行される。いくつかの実施形態において、処理300は、
図4のログ400を生成することに関連して実行される。様々な実施形態によると、処理300は、1または複数のデータセットおよび/またはサービス型ソフトウェアを管理するシステムのセキュリティサブシステムによって実行される。例えば、処理300は、
図1のシステム100のセキュリティシステム135によって実行される。
【0056】
工程310で、タスクの実行要求が受信される。いくつかの実施形態において、タスクの実行要求は、クライアント端末へのユーザ入力などを介して、ユーザから受信される。例えば、タスクの実行要求は、ユーザシステム120および/またはユーザシステム130へユーザによって入力される。別の例として、タスクの実行要求は、管理者システム125へ管理者によって入力される。別の例として、タスクの実行要求は、ユーザに提供されるダッシュボードまたはその他のユーザインターフェース(例えば、ユーザが関連付けられている組織内の従業員に対して提示された休暇日数を示すレポートなど、ダッシュボードレポート)を提供することなどに関連して、ユーザの代わりに自動的に開始される。タスクの実行要求は、所定のスケジュールまたはリフレッシュ頻度などに従って、ユーザに提供されるダッシュボードまたはその他のユーザインターフェースがリフレッシュされるとの決定に応じて受信されうる。タスクの実行要求は、システムが情報(興味深いと判定された情報など、例えば、異常値または統計的に関連付けられていると判定された情報、日、月、年などの時刻に基づくなどして、ユーザが受信する可能性があるとシステムが推測する情報、ユーザのストーリーとして収集された情報(傾向の表示またはサマリーを提供する情報など)、など)をユーザへ自動的に提供するとの決定に応じて受信されうる。一例として、システムは、ユーザのコンテキスト(例えば、ユーザがナビゲートしたユーザインターフェース、ユーザが特定の日時、週、月、または、年などに頻繁にレビューすると判定された情報のタイプ、など)、システムのコンテキスト、もしくは、タスクに応答する情報のコンテキスト(例えば、近々休暇を取る従業員の数など、タスクに応答する情報が異常値または異常を含むとの判定など)に基づいて、情報がユーザにとって興味深い(または興味深いと予測される)と判定する。
【0057】
タスクの実行要求は、タスクに関する1または複数のパラメータを含む。一例として、タスクがクエリである場合、1または複数のパラメータは、クエリ文字列などを含む。タスクに関する1または複数のパラメータは、タスク定義(例えば、クエリ文字列)、タスクが実行されるデータベース(例えば、1または複数のデータセット)の表示、などを含む。いくつかの実施形態において、タスクの実行要求は、タスクの実行要求の送信元であるユーザまたは端末を識別する情報(例えば、ユーザ識別子、ログイン名、電子メールアドレス、IPアドレス、MACアドレス、端末識別子、など)、ならびに/もしくは、ユーザまたは端末に関連付けられている認証情報、などの識別情報を含む。一例として、タスクの実行要求がユーザの代わりに自動的に開始された場合、システムは、タスクの実行要求が代わりに自動的に開始されたユーザを認証する。例えば、タスクの実行要求は、ユーザに関連付けられている認証情報(例えば、ログイン識別子および/またはパスワード)を含む。
【0058】
工程320で、ユーザに対してタスクが承認されているか否かの判定が実行される。いくつかの実施形態において、タスクの実行要求を受信したことに応じて、システムは、ユーザに対してタスクが承認されているか否か(例えば、ユーザがタスクの実行に必要な許可を有するか否か)を判定する。ユーザに対してタスクが承認されているか否かの判定は、
図1のシステム100のセキュリティシステム135など、承認またはセキュリティシステム(例えば、セキュリティサブシステム)によって実行される。いくつかの実施形態において、ユーザに対してタスクが承認されているか否かの判定は、ユーザ(例えば、ユーザのアカウント、ユーザの役職、ユーザの属性、など)に関連付けられている許可のセットに少なくとも部分的に基づいてよい。例えば、ユーザに対してタスクが承認されているか否かの判定は、タスクに対するユーザ許可のマッピングに少なくとも部分的に基づく。
【0059】
ユーザに対してタスクが承認されていないと工程320で判定したことに応じて、処理300は、ユーザに対してタスクが承認されていない旨の指示が提供される工程330に進む。システムは、クライアント端末(
図1のシステム100のユーザシステム120など)に通信し、ユーザに対してタスクが承認されていない旨の指示が提供される。例えば、システムは、要求されたタスクが許可されていない旨のプロンプトまたは指示をクライアント端末に表示させる。次いで、処理300は、工程380に進む。
【0060】
ユーザに対してタスクが承認されていると工程320で判定したことに応じて、処理300は、1セットの情報が取得される工程340に進む。いくつかの実施形態において、タスクが承認されていると判定したことに応じて、システムは、タスクの実行の結果である1セットの情報を決定する。例えば、タスクがクエリである場合、ユーザに対してクエリが承認されていると判定したことに応じて、システムは、1または複数の適切なデータセットに対してクエリを実行し、クエリに応答する1セットの情報を決定する。
【0061】
様々な実施形態によると、1セットの情報を取得する工程は、セキュリティシステム135がデータベースシステム(例えば、
図1のシステム100のデータベースシステム105)にクエリすることを含む。データベースシステムは、タスクの実行要求に含まれまたはそれに関連付けられている1または複数のパラメータに少なくとも部分的に基づいてクエリされる。
【0062】
工程350で、ユーザがアクセス許可を有する1セットの情報の内のサブセットが決定される。1セットの情報が取得されたことに応じて、システムは、かかるセットの情報の内のサブセットを決定する。そのサブセットは、1セットの情報(例えば、クエリに応答する情報など、タスクの結果)の内のどれにユーザがアクセス許可を有しているのかの判定に基づいて決定される。いくつかの実施形態において、セキュリティサブシステム(セキュリティシステム135など)が、情報に対するユーザ許可のマッピングに少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。いくつかの実施形態において、セキュリティサブシステム(セキュリティシステム135など)が、情報(例えば、1つの情報、または、複数の情報)に対応するオブジェクトが、ユーザがかかるオブジェクトへアクセスする許可を有することを示す属性または情報を含むとの判定に少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。1セットの情報の内、ユーザがアクセス許可を有するサブセットは、タスクを実行することに関連してユーザが触れる情報に対応する。
【0063】
工程360で、タスクの実行要求のレコードが格納される。いくつかの実施形態において、システムは、タスクの実行要求および/または(例えば、タスクの実行に応じて)タスクの実行を要求したユーザが触れまたはアクセスした情報のレコードを格納する。レコードの格納は、特定のタスクの実行要求との関連などで特定のユーザがアクセスしまたは触れた情報の履歴レコードを作成する。レコードは、タスクの実行要求の送信元であるユーザまたは端末を識別する情報(例えば、ユーザ識別子、ログイン名、電子メールアドレス、IPアドレス、MACアドレス、端末識別子、など)、ならびに/もしくは、ユーザまたは端末に関連付けられている認証情報など、ユーザを識別する情報を含む。いくつかの実施形態において、レコードは、タスクが要求および/または実行された日付および/または時刻、タスクの実行要求の送信元である端末のコンテキスト、情報がユーザに返されたタスクのタイプ、情報のサブジェクト(例えば、PIIがユーザに暴露されまたはユーザによってアクセスされた可能性のある個人)、などを含む。いくつかの実施形態において、レコードは、タスクを開始したプロセスに関する情報を含む。例えば、ユーザに提供されるダッシュボードまたはその他のユーザインターフェースを提供することなどに関連して、タスクの実行要求がユーザの代わりに自動的に開始される場合、システムは、ユーザの代わりにタスクの実行要求を開始したプロセスに関する情報、および/または、タスクの自動開始に関するコンテキスト(例えば、タスクを開始したプロセスに関連付けられている識別子など)、を格納する。いくつかの実施例において、タスクの実行要求が自動的に開始されるかかる場合に、レコードは、タスクを開始したプロセスに関連付けられている識別子と、情報が暴露された可能性のある1または複数のユーザ(例えば、プロセスがタスクを自動的に開始したユーザ)の識別子と、を含む。
【0064】
工程370で、タスクに関する結果が提供される。タスクに関する結果の提供は、タスクの実行要求のレコードの格納と同時に実行される。いくつかの実施形態において、タスクに関する結果は、レポート内で提供され、もしくは、予め定義されたテンプレートまたは構成可能なテンプレートに入力することに関連して提供される。様々な実施形態によると、タスクに関する結果は、1セットの情報(例えば、クエリに応答する情報)の内、ユーザがアクセス許可を有するサブセットに対応する。システムは、1セットの情報のサブセットを含むレポートをユーザインターフェースに表示させることなどによって、クライアント端末のユーザインターフェースにタスクに関する結果を提供させる。
【0065】
工程380で、処理300が完了したか否かについて判定がなされる。いくつかの実施形態において、処理300は、さらなるクエリまたはタスクが実行されないことをユーザが示し、ユーザがシステムを終了し、処理300が一次停止または停止されることを管理者が示し、ならびに/もしくは、異常挙動(例えば、異常ユーザ活動)が検出されたとの判定に応じて、完了したと判定される。処理300が完了したとの判定に応じて、処理300は終了する。処理300が完了していないとの判定に応じて、処理300は工程310に戻る。
【0066】
図4は、本願の様々な実施形態に従って、データベースシステムに関するユーザ活動のログを示す図である。図の例において、ログ400は、ログ400に含まれる情報がインデックス化される際に従うフィールドなど、1セットの所定のフィールドを備える。
【0067】
図4に示すように、ログ400は、以下のフィールドを備える。要求時間フィールド405、システムアカウントフィールド410、IPアドレスフィールド415、タスクフィールド420、ターゲット情報フィールド425、サブジェクト情報フィールド430、および/または、活動カテゴリフィールド435を備える。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。例えば、ログに格納されているレコードのフィールド内に格納されている情報は、経時的に変化しない。別の例として、ログ内のレコードのフィールドに格納されている情報は、変更不可能である。いくつかの実施形態において、ログのレコードのフィールドに格納されている情報は、フィールドに格納されている情報によって指し示されたターゲット情報への変更に関連して変化することはない。例えば、フィールドに格納されている情報が「役員報酬集計表」を含み、それに対応するターゲット情報が、「役員給与集計表」に対応するようにテナントシステムにおいて名称を変更された場合、これまでに記録されたロギング済みレコードはすべて、まだ「役員報酬集計表」を含み、ターゲット情報への任意の未来のアクセスが、ターゲット情報の更新済みのラベルを含むようにロギングされる。ログレコードは、いつかユーザ活動が起きた時に、そのユーザ活動をキャプチャする。
【0068】
要求時間フィールド405は、タスクの実行要求が受信された時またはタスクが実行された時の日付および/または時刻の情報を含む。
【0069】
システムアカウントフィールド410は、タスクの実行要求に関連付けられているユーザ(情報が暴露されたユーザなど)に関するアカウント情報を含む。
【0070】
IPアドレスフィールド415は、ユーザが情報にアクセスしまたはタスクの実行を要求した端末の位置またはアドレスに関連付けられている情報を含む。
【0071】
タスクフィールド420は、タスクの実行要求に対応するタスクを示す。タスクフィールド420に示されたタスクは、高レベルタスク(例えば、タスクを実行/クエリを実行するためにパラメータが含まれているタスク)に対応する。例えば、タスクは、クエリが実行される情報のデータセットまたはタイプに対応する。
【0072】
ターゲット情報フィールド425は、タスク/クエリの実行のターゲットを示す情報を含む。例えば、ターゲットは、タスクの実行要求のパラメータである。ターゲットは、テナントの個人/ユーザ、1セットの情報、もしくは、タスクに関連付けられている情報の上位集合をフィルタリングするために用いられる1または複数の特徴である。一例として、タスクがクエリである場合、ターゲット情報フィールド425に含まれる情報は、クエリを定義または制限するために用いられるフィールドまたはパラメータの1または複数の値を含む。別の例として、ターゲット情報フィールド425は、クエリを受けるデータベーステーブルを示す。別の例として、ターゲット情報フィールド425は、クエリを受けるオブジェクトクラスまたはオブジェクト属性を示す。
【0073】
サブジェクト情報フィールド430は、タスクの実行に応じてユーザに暴露されたサブジェクト情報の表示を含む。いくつかの実施形態において、サブジェクト情報フィールド430は、ユーザに暴露された特定のサブジェクト情報、または、ユーザに暴露されたサブジェクト情報のタイプ、または、それら両方を含む。様々な実施形態によると、サブジェクト情報は、テナントに関する機密情報(テナントに関連付けられている個人またはユーザのPIIなど)、テナントに関する専有情報、などに対応する。一例として、テナントに関連付けられている個人またはユーザ(特定のターゲットユーザまたは1セットのターゲットユーザなど)のPIIがクエリされる(例えば、ターゲットユーザに関連付けられているプロファイル)。別の例として、テナントに関する専有情報は、特定のテナント機密情報または1セットのテナント機密情報を含む(例えば、新しい製品に関するビジネスプラン、企業機密、製品、調査プログラム、従業員)。一例として、サブジェクト情報が、テナントに関連付けられている個人またはユーザのPIIに対応する場合、サブジェクトフィールド430は、タスクの実行に応じて情報がユーザに暴露された個人またはユーザの表示を含む。或るタイプのサブジェクト情報がユーザに暴露された旨の表示は、サブジェクト情報が、PII、財務データ、研究開発データ、知的所有権、などであったことの表示を含みうる。別の例として、サブジェクト情報が、テナントに関する専有情報に対応する場合、サブジェクトフィールド430は、タスクの実行に応じてユーザに暴露された情報のタイプまたは特定の情報(例えば、特定のテナント機密情報の、情報が暴露された個人またはユーザのPII、など)を含む。一例として、ログ400の2行目に示されているように、サブジェクト情報フィールド430は、Jane Doeに関する情報がアクセスされた(例えば、Jane Doeに関する情報が、対応するタスクの実行に関連して返された)ことを示している。別の例として、ログ400の2行目に示されているように、サブジェクト情報フィールド430は、Jane Smith、Jane Doe、および、John Doeに関する情報がアクセスされた(例えば、かかる個人に関する情報が、対応するタスクの実行に関連して返された)ことを示している。いくつかの実施形態において、サブジェクト情報フィールド430は、対応するタスクの実行に応じてPIIが返されたユーザまたは個人を示すために用いられる。いくつかの実施形態において、サブジェクト情報フィールド430は、対応するタスクの実行に応じてユーザに返された特定のテナント機密情報を記録し/示すために用いられる。一例として、企業秘密データベース/ログ内の情報がユーザに暴露されたことに関連して、システムは、レコードまたはトランザクションのサブジェクトフィールドに、ユーザに暴露された特定の企業秘密の表示(例えば、企業秘密に関連付けられているプロジェクト名など)を記録する。一例として、R&Dプロジェクト(例えば、プロジェクト「アルファ」)に関する情報がユーザに暴露されたことに関連して、システムは、レコードまたはトランザクションのサブジェクトフィールドに、ユーザに暴露された特定の情報の表示(例えば、プロジェクトアルファの要素Xの設計履歴ファイル、プロジェクトアルファの要素Yのテスト結果、など)を記録する。
【0074】
活動カテゴリフィールド435は、タスクの実行に関連して実行された活動または行動のタイプの表示を含む。活動のタイプの例は、読み出し、書き込み、削除、コピー、ダウンロード、その他(例えば、security access denied要求、file not found要求、など)などを含む。
【0075】
様々な実施形態によると、ログ400は、許可ユーザのアクセス許可に基づいて許可ユーザに提供される情報を制限するように、情報を提供する。一例として、ログ400は、情報(例えば、タスクの実行に応じてユーザに返された情報)を指し示しているが、データベースに関するタスクの実行要求に応じてユーザに返される1セットの情報の内のサブセットを格納していない。ログ400は、許可ユーザがタスクの実行に関連してユーザに返された基礎情報にアクセスを試みることができるリンク(例えば、ハイパーリンク)を含む。例として、ログ400は、従業員Jane Doe(組織のCFO)に関する情報にリンクされた選択可能リンク445を含む。したがって、Jane Doeに関する具体的なPIIは、ログ400が閲覧/検索された時に表示されないが、システムは、許可ユーザからの選択によってアクセスされるJane Doeに関する基礎情報を指し示している。いくつかの実施形態において、ログ400の少なくとも一部は、別のユーザ(例えば、管理者など)に提供され、ログは、1セットの情報の内のログが指し示すサブセットの少なくとも一部への選択可能なリンク(例えば、選択可能リンク440または選択可能リンク445など)を提供するように提供される。選択可能リンクを選択するための入力を受信したことに応じて、システムまたは方法(例えば、セキュリティまたは承認モジュール)は、他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているか否かを判定する。例えば、Jane Doeの情報を指し示す選択可能リンク445または報酬集計表を指し示す選択可能リンク440の選択に応じて、タスク(例えば、基礎情報の閲覧/アクセス)が、対応する選択可能リンク(例えば、選択可能リンク440または選択可能リンク)を選択したユーザに許可されているか否かの判定がなされる。他のユーザが選択可能リンクの指し示す情報445)へのアクセスを許可されているとの判定に応じて、他のユーザは、選択可能リンクの指し示す情報へのアクセスを許可される。例えば、システムは、かかる基礎情報に対応する情報/レポートをクライアント端末のユーザインターフェースに表示させる。
【0076】
図5は、本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャートである。様々な実施形態によると、処理500は、
図3の処理300の工程320に関連して実行される。処理500は、1または複数のデータセットおよび/またはサービス型ソフトウェアを管理するシステムのセキュリティサブシステムによって実行される。例えば、処理500は、
図1のシステム100のセキュリティシステム135によって実行される。
【0077】
工程510で、ユーザアクセス許可が取得される。いくつかの実施形態において、ユーザアクセス許可は、ユーザに対する許可のマッピングから取得される。いくつかの実施形態において、アクセス許可は、ユーザ(例えば、タスクの実行を要求したユーザ)に対応するプロファイルまたはユーザ定義から取得される。ユーザアクセス許可は、ユーザごと(例えば、ユーザ識別子に基づいて)、役職ごと(例えば、ユーザが、管理職、役員、法務職員、などのいずれであるか)、部署ごと(例えば、ユーザが、法務部、経営陣、研究開発部、人材部、などのいずれであるか)、などで定義される。ユーザに対するその他の許可設定または分類が、ユーザに対する許可または別の方法で定義された許可設定を設定するために用いられてよい。
【0078】
工程520で、タスクの許可が取得される。タスクの許可は、タスクの実行を要求するために必要な許可、または、タスクの実行からの結果を取得するために必要な許可に対応する。いくつかの実施形態において、タスクの許可。タスクの許可は、タスクに対する許可のマッピングから取得される。例えば、タスクの許可は、ユーザごと(例えば、ユーザ識別子に基づいて)、役職ごと(例えば、ユーザが、管理職、役員、法務職員、などのいずれであるか)、部署ごと(例えば、ユーザが、法務部、経営陣、研究開発部、人材部、などのいずれであるか)、などで定義される。ユーザに対するその他の許可設定または分類が、ユーザに対する許可または別の方法で定義された許可設定を設定するために用いられる。
【0079】
工程530で、ユーザがタスクに必要な許可を有しているか否かの判定が実行される。いくつかの実施形態において、システムは、ユーザアクセス許可が、タスクの許可と一致する(例えば、矛盾しない)か否かを判定する。
【0080】
工程530でユーザがタスクに必要な許可を有していると判定されたことに応じて、処理500は、ユーザに対してタスクが承認されている旨の指示が提供される工程540に進む。いくつかの実施形態において、ユーザに対してタスクが承認されている旨の指示は、
図3の処理300に提供される。
【0081】
工程530でユーザがタスクに必要な許可を有していると判定されたことに応じて、処理500は、ユーザに対してタスクが承認されていない旨の指示が提供される工程550に進む。いくつかの実施形態において、ユーザに対してタスクが承認されている旨の指示は、
図3の処理300に提供される。
【0082】
図6は、本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャートである。様々な実施形態によると、処理600は、
図3の処理300の工程350に関連して実行される。処理600は、1または複数のデータセットおよび/またはサービス型ソフトウェアを管理するシステムのセキュリティサブシステムによって実行される。例えば、処理500は、
図1のシステム100のセキュリティシステム135によって実行される。
【0083】
工程610で、ユーザアクセス許可が取得される。いくつかの実施形態において、ユーザアクセス許可は、ユーザに対する許可のマッピングから取得される。いくつかの実施形態において、アクセス許可は、ユーザ(例えば、タスクの実行を要求したユーザ)に対応するプロファイルまたはユーザ定義から取得される。ユーザアクセス許可は、ユーザごと(例えば、ユーザ識別子に基づいて)、役職ごと(例えば、ユーザが、管理職、役員、法務職員、などのいずれであるか)、部署ごと(例えば、ユーザが、法務部、経営陣、研究開発部、人材部、などのいずれであるか)、などで定義される。ユーザに対するその他の許可設定または分類が、ユーザに対する許可または別の方法で定義された許可設定を設定するために用いられる。ユーザアクセス許可は、ユーザがアクセスの許可を有するオブジェクトのクラスまたはオブジェクト属性のセットを示す。
【0084】
工程620で、1セットの情報内のオブジェクトが取得される。いくつかの実施形態において、タスクが実行される1または複数のデータセット(例えば、クエリが実行されるデータセット)は、複数のオブジェクトを含む。例えば、複数のオブジェクトは、それぞれ、1または複数のデータセットの情報に対応する。1または複数のデータセット内の各オブジェクトは、対応する一意のオブジェクト識別子を有する。いくつかの実施形態において、各オブジェクトは、オブジェクトの構造を規定する属性のセットに関連付けられている。
【0085】
工程630で、オブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致するか否かが判定される。いくつかの実施形態において、セキュリティサブシステム(セキュリティシステム135など)が、情報(例えば、1つの情報、または、複数の情報)に対応するオブジェクトが、ユーザがかかるオブジェクトへアクセスする許可を有することを示す属性、クラス、または、情報を含みまたはそれに関連付けられているか否かを判定する。例えば、システムは、オブジェクトが、ユーザアクセス許可と一致する(例えば、ユーザがアクセス許可を有する)属性、クラス、または、情報を含みまたはそれに関連付けられているか否かを判定する。
【0086】
工程630でオブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致すると判定されたことに応じて、処理600は、ユーザがアクセス許可を有する情報のサブセットにオブジェクトが追加される工程640に進む。次いで、処理600は、工程650に進む。
【0087】
工程630でオブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致しないと判定されたことに応じて、処理600は工程650に進む。
【0088】
工程650で、システムは、オブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致するか否かを判定されるさらなるオブジェクトを情報のセットが含むか否かを判定する。例えば、処理600は、情報(例えば、クエリに応答する情報、タスクの実行に由来する情報、など)のセットにおける各オブジェクトについて、ユーザ許可がオブジェクトに関連付けられている許可と一致するか否か(例えば、オブジェクトがユーザまたはユーザ許可と一致する属性を有するか否か)を繰り返し判定する。タスクの実行に応じてユーザに提供される情報のサブセットは、一致するユーザオブジェクト許可の反復的な判定に基づいて、構築(例えば、決定)される。
【0089】
工程650でオブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致するか否かを判定されるさらなるオブジェクトを情報のセットが含むと判定したことに応じて、処理600は工程620に戻ってよい。
【0090】
工程650でオブジェクトまたはオブジェクトの属性がユーザアクセス許可と一致するか否かを判定されるさらなるオブジェクトを情報のセットが含まないと判定したことに応じて、処理600は、ユーザがアクセス許可を有する1セットの情報のサブセットが提供される工程660に進んでよい。例えば、1セットの情報のサブセットは、
図3の処理300の工程350に返される。
【0091】
図7は、本願の様々な実施形態に従って、データベースシステムに関するユーザ活動をロギングするための方法を示すフローチャートである。様々な実施形態によると、処理700は、
図3の処理300の工程360に関連して実行される。処理700は、1または複数のデータセットおよび/またはサービス型ソフトウェアを管理するシステムのセキュリティサブシステムによって実行される。例えば、処理500は、
図1のシステム100のセキュリティシステム135によって実行される。
【0092】
工程710で、新たなレコードを作成する指示が受信される。いくつかの実施形態において、新たなレコードを作成する指示は、タスクの実行要求の受信に関連して受信される。一例として、レコードは、ユーザ活動のログ(ログ400など)内の行に対応する。レコードは、ユーザ活動のログの1または複数のフィールドに対する情報を含む。いくつかの実施形態において、新たなレコードを作成する指示は、タスク実行/クエリに応答する1セットの情報の内のサブセットの決定に応じて受信され、そのサブセットは、1セットの情報の中でユーザがアクセス許可を有する情報に対応する。いくつかの実施形態において、ユーザに返されまたは提供される情報のサブセットを決定したことに応じて、システムは、新たなレコードを作成することを決定する。いくつかの実施形態において、タスクに関する結果(例えば、情報のサブセット)を提供したことに応じて(または関連して)。
【0093】
工程720で、レコードが作成される。例えば、システムは、タスクの実行要求、および/または、タスクの実行に少なくとも部分的に基づいて決定された結果に少なくとも部分的に基づいて、レコードを生成する。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。
【0094】
いくつかの実施形態において、レコードは、1または複数のデータセットに関連付けられている管理者またはテナントなどによって構成可能である1または複数の所定のフィールドを含む。1または複数の所定のフィールドの例は、タスクが実行された日付および/または時刻、タスクの実行要求に関連付けられているユーザの表示(例えば、雇用者番号、ユーザ名、電子メールアドレス、ログイン識別子など、ユーザ識別子)、タスクの実行要求の送信元のIPアドレス、タスクの実行要求の送信元の端末の識別子、タスクのタイプの表示、情報のタイプのターゲットの表示(例えば、返された可能性のある情報に関連付けられている部署、情報が返された可能性のあるカテゴリまたは下部組織、要求されたレポートのタイプ、クエリまたはタスク実行に関連して用いられる変数に関連付けられているパラメータまたは値、など)、返された情報のサブジェクト(例えば、対応する情報が返された個人(役員)、など)、実行された活動のタイプ(例えば、読み出し、書き込み、削除、など)、を含むが、これらに限定されない。様々なその他のタイプの情報が、所定のフィールドとして実装される。
【0095】
工程730で、レコードは、コミットされていないレコードのセットに格納される。いくつかの実施形態において、システム(例えば、システム100のセキュリティシステム135など、セキュリティサブシステム)は、ロギングキューにレコードを格納する。ロギングキューは、コミットされていないレコード(例えば、ログにコミットまたは格納されていないレコード)のセットを含む。レコードは、タスクの実行と同時に(または、タスクの実行要求と同時に)ロギングキューに格納される。
【0096】
工程740で、1または複数のバッチ基準が満たされているか否かの判定が実行される。システムは、1または複数のバッチ基準を満たすか否かに基づいて、ロギングキューにレコードをコミットするか否かを決定する。バッチ基準の例は、ロギングキュー内のレコードの閾値数(例えば、ログにまだコミットされていないレコードの閾値数)、ログへのレコードの最後のコミット以来経過した時間、日付および/または時刻、ログ内のレコードの解析に基づいた異常挙動の検出、ロギングキュー内のレコードの解析に少なくとも部分的に基づいた異常挙動の検出、などを含むが、これらに限定されない。
【0097】
いくつかの実施形態において、ロギングキューがレコードの閾値数以上の数のレコードを含むとの判定に応じて、バッチ基準は、満たされていると見なされる。いくつかの実施形態において、ロギングキュー内のレコードの最後のコミット以来、閾値量の時間が経過したとの判定に応じて、バッチ基準は、満たされていると見なされる。様々なその他の基準が、1または複数のバッチ基準として実装される。
【0098】
1または複数のバッチ基準が満たされていると工程740で判定したことに応じて、処理700は、1セットの複数のレコードがデータベースシステムにコミットされる工程750に進む。いくつかの実施形態において、1セットの複数のレコードをデータベースシステムにコミットすることは、1セットの複数のレコードをログに格納することを含む。1セットの複数のレコードをログに格納することは、1セットの複数のレコードを含むようにログを更新することを含む。ログは、1または複数のデータセットに関連付けて格納される。例えば、ログは、
図1のシステム100のデータベースシステム105に格納される。(例えば、生成された時にレコードをコミットするのと対照的に)1セットの複数のレコードをバッチとしてコミットすることは、タスクの実行要求に関連付けられているサブジェクト情報に関するロギング情報をポストするコスト(例えば、タスクのレコードをポストするコスト)を改善または最適化する。いくつかの実施形態において、1または複数のバッチ基準は、(例えば、1または複数のレコードをログにコミットすること、ならびに、1または複数のデータセットに関する他のユーザからのクエリおよびタスクを果たすことに関連付けられているコスト関数の1または複数のコスト値の閾値を満たすように)ログに対するレコードのコミットのコスト関数および/または最適化に基づいて構成されている。
【0099】
図8は、様々な実施形態に従って、データベースに関するユーザ活動のログにクエリするための方法を示すフローチャートである。様々な実施形態によると、ログは、タスクの実行に関連してユーザに暴露されたサブジェクト情報に関して検索可能である。いくつかの実施形態において、サブジェクト情報は、テナントに関する機密情報(テナントに関連付けられている個人またはユーザのPIIなど)、テナントに関する専有情報、などに対応する。一例として、テナントに関連付けられている個人またはユーザ(特定のターゲットユーザまたは1セットのターゲットユーザなど)のPIIがクエリされる(例えば、ターゲットユーザに関連付けられているプロファイル)。別の例として、テナントに関する専有情報は、特定のテナント機密情報または1セットのテナント機密情報を含む(例えば、新しい製品に関するビジネスプラン、企業機密、製品、調査プログラム、従業員)。ユーザクエリに関する情報および/またはタスクの実行に関連付けられているサブジェクト情報を記録することは、ユーザ活動を記録することにおいてより広いコンテンツを提供する。例えば、様々な実施形態に従ったログは、クエリの日付および/または時刻に関するデータの復元、クエリの再実行、および、結果の取得を必要とする、実行されたクエリの単なる表示ではなく、ユーザに暴露された(例えば、クエリに対する結果としてユーザに返された)情報を示す情報を提供する。ログは、レコードまたは実行されたタスクのコンテキストを提供する1または複数の所定のフィールドに従って、検索可能でありおよび/またはインデックス化されるので、許可ユーザ(管理者、もしくは、ログの閲覧および/または利用を許可されているその他のユーザ)は、ユーザの履歴活動を効率的かつ効果的に解析することができ、システムは、適時に異常挙動を検出できる。
【0100】
工程805で、ユーザ活動のログに関するクエリが受信される。様々な実施形態によると、ログは、管理者ユーザ(例えば、対応する1または複数のデータセットに関連付けられているテナントの管理者)、および/または、ログを読み出し/閲覧するためのアクセス許可など必要な許可を有するその他のユーザなど、許可されたユーザなどによって検索可能である。いくつかの実施形態において、ユーザは、クライアント端末(クライアント端末(例えば、システム100のユーザシステム120および/または管理者システム125など)によって提供されたユーザインターフェースなど)にクエリ(例えば、クエリのためのクエリパラメータ)を入力する。
【0101】
様々な実施形態によると、クエリは、1または複数のクエリパラメータを含む。1または複数のクエリパラメータは、ログの1または複数のフィールドに対応する値を含む。例えば、1または複数のクエリパラメータは、ユーザ、サブジェクトまたはサブジェクト情報、日付および/または時刻(例えば、タスクが要求および/または実行された日付または時刻)、タスクの要求元の端末に関連付けられている識別子(例えば、IPアドレス、MACアドレス、など)、ターゲット情報の表示、活動カテゴリ、などの内の1または複数の表示を含む。様々な実施形態によると、1または複数のクエリパラメータは、上記のものなどの任意の組みあわせを含む。
【0102】
工程810で、ユーザに対してタスクが承認されているか否かの判定が実行される。いくつかの実施形態において、タスクの実行要求を受信したことに応じて、システムは、ユーザに対してタスクが承認されているか否か(例えば、ユーザがタスクの実行に必要な許可を有するか否か)を判定する。ユーザに対してタスクが承認されているか否かの判定は、
図1のシステム100のセキュリティシステム135など、承認またはセキュリティシステム(例えば、セキュリティサブシステム)によって実行される。いくつかの実施形態において、ユーザに対してタスクが承認されているか否かの判定は、ユーザ(例えば、ユーザのアカウント、ユーザの役職、ユーザの属性、など)に関連付けられている許可のセットに少なくとも部分的に基づいてよい。例えば、ユーザに対してタスクが承認されているか否かの判定は、タスクに対するユーザ許可(例えば、ユーザ活動のログをクエリ/検索する許可)のマッピングに少なくとも部分的に基づいてよい。
【0103】
ユーザに対してタスクが承認されていないと工程810で判定したことに応じて、処理800は、ユーザに対してタスクが承認されていない旨の指示が提供される工程840に進む。システムは、クライアント端末(
図1のシステム100のユーザシステム120など)に通信し、ユーザに対してタスクが承認されていない旨の指示が提供される。例えば、システムは、要求されたタスクが許可されていない旨のプロンプトまたは指示をクライアント端末に表示させる。次いで、処理800は、工程860に進む。
【0104】
ユーザに対してタスクが承認されていると工程810で判定したことに応じて、処理800は、クエリに関するログ情報が取得される工程815に進む。クエリに関するログ情報を取得する工程は、クエリに応答する情報を決定する工程を含む。例えば、クエリは、クエリに関するログ情報を取得するために、クエリに関連付けられている1または複数のデータセットに対して実行される。クエリに関するログ情報は、クエリに含まれる(またはクエリに関連して通信された)1または複数のパラメータに少なくとも部分的に基づいて決定される。
【0105】
工程820で、クエリに関するログ情報のレポートが作成される。いくつかの実施形態において、レポートを作成する工程は、レポートテンプレートに少なくともクエリに関するログ情報を投入する工程を含む。レポートテンプレートは、クエリ、クエリに関連付けられている1または複数のパラメータ、ならびに、クエリに関するログ情報、の内の1または複数に少なくとも部分的に基づいて構成される。
【0106】
レポートは、クエリに応じて提供される。例えば、システムは、クライアント端末にレポートを表示させる。例えば、システムは、レポートを表示するように、クライアント端末(ウェブブラウザ内のページなど)に表示されたユーザインターフェースを構成する。
【0107】
様々な実施形態によると、クエリに関するログ情報は、許可ユーザのアクセス許可に基づいて許可ユーザに提供される情報を制限するように、情報を提供する。一例として、クエリに関するログ情報は、情報(例えば、タスクの実行に応じてユーザに返された情報)を指し示しているが、データベースに関するタスクの実行要求に応じてユーザに返される1セットの情報の内のサブセットを表示しない。ユーザに提供されるクエリに関するログ情報は、許可ユーザがタスクの実行に関連してユーザに返された基礎情報にアクセスを試みるリンク(例えば、ハイパーリンク)を含む。例として、クエリに関するログ情報を提供することに関連して用いられる選択可能リンクは、
図4のログ400の選択可能リンク445に対応しており、それによると、選択可能リンクは、従業員Jane Doe(組織のCFO)に関する情報にリンクされている。したがって、Jane Doeに関する具体的なPIIは、ログ400が閲覧/検索された時に表示されないが、システムは、許可ユーザからの選択によってアクセスされるJane Doeに関する基礎情報を指し示している。いくつかの実施形態において、レポートは、ログ(ログ400など)のフィルタリング済みのバージョンに対応してよい。ログのフィルタリング済みのバージョンは、クエリと一致する(例えば、クエリに応答する)レコードのみを返す。
【0108】
工程825で、レポートに関連付けられている要素の選択に関するユーザ入力が受信される。いくつかの実施形態において、ユーザ入力は、クライアント端末(例えば、ユーザシステム120、管理者システム125、ユーザシステム130、など)で受信され、クライアント端末は、ユーザ入力(またはその指示)をシステム(例えば、セキュリティシステム135など)へ通信し、セキュリティシステムは、ユーザ入力を受信する。ユーザ入力は、システム(例えば、セキュリティシステム135など)へ通信される。一例として、ユーザ入力の選択を受信したことに応じて、タスクの実行要求が(例えば、クライアント端末などによって)生成され、システム(例えば、セキュリティシステム135など)へ通信されてよい。別の例として、ユーザ入力の選択を受信したことに応じて、クライアント端末は、ユーザ入力の指示を通信する。
【0109】
工程830で、ユーザ入力は、タスクの実行要求に関連していると判定される。様々な実施形態によると、ユーザ入力を受信したことに応じて、システムは、ユーザ入力がタスクを実行するためのユーザ選択に対応していると判定する。例えば、選択可能リンクの選択に対応するユーザ入力を受信したことに応じて、システムは、ユーザが、選択可能リンクに対応する情報(例えば、選択可能リンクが指し示す情報)にアクセスするためのタスクを実行することを要求していると判定する。
図4のログ400の選択可能リンク445の例において、選択可能リンクの選択は、Jane Doe(CFO)に関する情報の閲覧(例えば、Jane Doeに対応するユーザプロファイルの閲覧、Jane DoeのPIIの閲覧、など)の要求に対応する。
【0110】
工程835で、ユーザ(例えば、ログを閲覧/利用している許可ユーザ)についてタスクが承認されているか否かの判定が実行される。いくつかの実施形態において、タスクの実行要求を受信したことに応じて、システムは、ユーザに対してタスクが承認されているか否か(例えば、ユーザがタスクの実行に必要な許可を有するか否か)を判定する。ユーザに対してタスクが承認されているか否かの判定は、
図1のシステム100のセキュリティシステム135など、承認またはセキュリティシステム(例えば、セキュリティサブシステム)によって実行される。いくつかの実施形態において、ユーザに対してタスクが承認されているか否かの判定は、ユーザ(例えば、ユーザのアカウント、ユーザの役職、ユーザの属性、など)に関連付けられている許可のセットに少なくとも部分的に基づく。例えば、ユーザに対してタスクが承認されているか否かの判定は、タスクに対するユーザ許可(例えば、ユーザ活動のログをクエリ/検索する許可)のマッピングに少なくとも部分的に基づく。別の例として、システムは、ログ(または、ユーザ活動のログに関するレポート)を閲覧するユーザが、選択可能リンクに潜在する情報(例えば、ログ内の関連レコードに対応するユーザに返された情報)の閲覧などのタスクを実行するためのアクセス許可を有するか否かを判定する。
【0111】
ユーザに対してタスクが承認されていないと工程835で判定したことに応じて、処理800は、ユーザに対してタスクが承認されていない旨の指示が提供される工程840に進む。システムは、クライアント端末(
図1のシステム100のユーザシステム120など)に通信し、ユーザに対してタスクが承認されていない旨の指示が提供される。例えば、システムは、要求されたタスクが許可されていない旨のプロンプトまたは指示をクライアント端末に表示させる。次いで、処理800は、工程860に進む。
【0112】
ユーザに対してタスクが承認されていると工程835で判定したことに応じて、処理800は、1セットの情報が取得される工程845に進んでよい。1セットの情報は、ユーザ入力に関連付けられているタスクの実行要求に応答する情報に対応する。例えば、基礎情報を指し示した選択可能要素(例えば、選択可能要素445の選択に応じるJane Doeのプロファイルなど、ユーザプロファイルの選択可能リンク)をユーザが選択したことに応じて、システムは、基礎情報にアクセスするためのタスク/クエリを生成し、基礎情報(例えば、ユーザのPIIなど、ユーザプロファイルに含まれる情報)を取得するためのタスク/クエリを実行する。
【0113】
工程850で、ユーザがアクセス許可を有する1セットの情報の内のサブセットが決定される。1セットの情報が取得されたことに応じて、システムは、かかるセットの情報の内のサブセットを決定する。そのサブセットは、1セットの情報(例えば、クエリに応答する情報など、タスクの結果)の内のどれにユーザがアクセス許可を有しているのかの判定に基づいて決定される。いくつかの実施形態において、セキュリティサブシステム(セキュリティシステム135など)が、情報に対するユーザ許可のマッピングに少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。いくつかの実施形態において、セキュリティサブシステム(セキュリティシステム135など)が、情報(例えば、1つの情報、または、複数の情報)に対応するオブジェクトが、ユーザがかかるオブジェクトへアクセスする許可を有することを示す属性または情報を含むとの判定に少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。1セットの情報の内、ユーザがアクセス許可を有するサブセットは、タスクを実行することに関連してユーザが触れる情報に対応する。
【0114】
工程855で、タスクに関する結果が提供される。例えば、タスクに関する結果の提供は、タスクの実行要求のレコードの格納と同時に実行される。いくつかの実施形態において、タスクに関する結果は、レポート内で提供され、もしくは、予め定義されたテンプレートまたは構成可能なテンプレートに入力することに関連して提供される。様々な実施形態によると、タスクに関する結果は、1セットの情報(例えば、クエリに応答する情報)の内、ユーザがアクセス許可を有するサブセットに対応する。システムは、1セットの情報のサブセットを含むレポートをユーザインターフェースに表示させることなどによって、クライアント端末のユーザインターフェースにタスクに関する結果を提供させる。
【0115】
工程860で、800が完了したか否かについて判定がなされる。いくつかの実施形態において、処理800は、さらなるクエリまたはタスクが実行されないことをユーザが示し、ユーザがシステムを終了し、処理800が一次停止または停止されることを管理者が指示し、ならびに/もしくは、異常挙動(例えば、異常ユーザ活動)が検出されたとの判定に応じて、完了したと判定される。処理800が完了したとの判定に応じて、処理800は終了する。処理800が完了していないとの判定に応じて、処理800は工程805に戻る。
【0116】
図9は、様々な実施形態に従って、データベースに関するユーザ活動のログにクエリするための方法を示すフローチャートである。いくつかの実施形態において、ログは、データベースシステムの許可ユーザによって検索可能である。いくつかの実施形態において、ログは、情報を指し示しているが、データベースに関するタスクの実行要求に応じてユーザに返される1セットの情報の内のサブセットを格納していない。
【0117】
様々な実施形態によると、システムは、ログの少なくとも一部を他のユーザに提供し、そのログは、1セットの情報の内のログが指し示す部分の少なくとも一部への選択可能リンクを提供するように提供される。選択可能リンクを選択するための入力を受信したことに応じて、システム(例えば、セキュリティシステム)は、他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているか否かを判定する。他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているとの判定に応じて、システムは、選択可能リンクの指し示すアクセス情報を他のユーザへ提供する。いくつかの実施形態において、許可ユーザは、ユーザの識別子に少なくとも部分的に基づいて、ログをクエリする。いくつかの実施形態において、許可ユーザは、レコードがログに格納されている1または複数のタスクに関して返された情報に関連付けられている識別子に少なくとも部分的に基づいて、ログをクエリする。いくつかの実施形態において、許可ユーザは、タスクの実行要求に応じてユーザに返された情報のタイプに少なくとも部分的に基づいて、ログをクエリする。
【0118】
工程910で、活動のログのクエリが受信される。いくつかの実施形態において、クエリは、ログに記録されたタスクに関連して返された特定の情報に関係する。ログ活動のクエリは、ユーザ(ユーザ活動を監査する管理者または別のユーザなど)から受信される。一例として、ログ活動のクエリは、特定のユーザ(または一連のユーザ)の活動のクエリに対応する。別の例として、ログ活動のクエリは、特定のユーザ(例えば、テナントの役員など)に関連付けられている情報を返したタスクのクエリに対応する。例えば、管理者は、特定の個人(例えば、役員)に関する情報をどのユーザが閲覧したのかを判定しようとし得る。いくつかの実施形態において、クエリは、ユーザ活動に関連付けられている日付および/または時刻に関する1または複数のパラメータを含む。例えば、管理者は、どのユーザが、特定の期間内に特定の情報(例えば、役員報酬、個人のPII、役員に関する情報、特定の企業秘密レコード、特定のビジネスプランまたは研究結果、など)などのサブジェクト情報を暴露されまたはアクセスしたのかを判定しようとする。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。一例として、ログは、1または複数の基礎データセットに格納されているテナント機密情報に関するユーザ活動の安全かつ一貫したレコードを含む。
【0119】
工程920で、ユーザに対してタスクが承認されているか否かの判定が実行される。例えば、システムは、タスクに関連付けられているユーザが、許可ユーザ(ログを閲覧および/または利用する許可を有する管理者またはその他のユーザなど)であるか否かを判定する。いくつかの実施形態において、タスクの実行要求を受信したことに応じて、システムは、ユーザに対してタスクが承認されているか否か(例えば、ユーザがタスクの実行に必要な許可を有するか否か)を判定する。ユーザに対してタスクが承認されているか否かの判定は、
図1のシステム100のセキュリティシステム135など、承認またはセキュリティシステム(例えば、セキュリティサブシステム)によって実行される。いくつかの実施形態において、ユーザに対してタスクが承認されているか否かの判定は、ユーザ(例えば、ユーザのアカウント、ユーザの役職、ユーザの属性、など)に関連付けられている許可のセットに少なくとも部分的に基づく。例えば、ユーザに対してタスクが承認されているか否かの判定は、タスクに対するユーザ許可(例えば、ユーザ活動のログをクエリ/検索する許可)のマッピングに少なくとも部分的に基づく。別の例として、システムは、ログ(または、ユーザ活動のログに関するレポート)を閲覧するユーザが、選択可能リンクに潜在する情報(例えば、ログ内の関連レコードに対応するユーザに返された情報)の閲覧などのタスクを実行するためのアクセス許可を有するか否かを判定する。
【0120】
ユーザに対してタスクが承認されていないと工程920で判定したことに応じて、処理900は、ユーザに対してタスクが承認されていない旨の指示が提供される工程930に進む。システムは、クライアント端末(
図1のシステム100のユーザシステム120など)に通信し、ユーザに対してタスクが承認されていない旨の指示が提供される。例えば、システムは、要求されたタスクが許可されていない旨のプロンプトまたは指示をクライアント端末に表示させる。次いで、処理900は、工程970に進む。
【0121】
ユーザに対してタスクが承認されていると工程920で判定したことに応じて、処理900は、クエリに関するログ情報が取得される工程940に進む。1セットの情報は、ユーザ入力に関連付けられているタスクの実行要求に応答する情報に対応する。例えば、基礎情報を指し示した選択可能要素(例えば、選択可能要素445の選択に応じるJane Doeのプロファイルなど、ユーザプロファイルの選択可能リンク)をユーザが選択したことに応じて、システムは、基礎情報にアクセスするためのタスク/クエリを生成し、基礎情報(例えば、ユーザのPIIなど、ユーザプロファイルに含まれる情報)を取得するためのタスク/クエリを実行する。
【0122】
工程950で、クエリに応答するログ情報のレポートが作成される。いくつかの実施形態において、クエリに応答するログ情報のレポートは、所定のテンプレートに少なくとも部分的に基づいて生成される。所定のテンプレートは、タスク(例えば、クエリ)に関連付けられているパラメータに少なくとも部分的に基づいて構成される。例えば、レポートテンプレートは、クエリの1または複数のパラメータに少なくとも部分的に基づいて、1または複数の特定のフィールドを含むよう構成される。別の例として、レポートは、クエリの1または複数のパラメータに少なくとも部分的に基づいて、1または複数の特定のフィールドを除外するよう構成される(例えば、クエリと関連のないフィールドが除外されてよい、など)。
【0123】
工程960で、クエリに応答するログ情報のレポートが提供される。いくつかの実施形態において、クエリに応答するログ情報のレポートは、(例えば、ユーザシステム120、管理者システム125、および/または、ユーザシステム130などのクライアント端末を介して)ユーザに提供される。一例として、システム(例えば、データベースシステム105、セキュリティシステム135、など)は、クライアント端末のユーザインターフェースに、レポートまたはレポートに含まれる情報を表示させる。
【0124】
工程970で、900が完了したか否かについて判定がなされる。いくつかの実施形態において、処理900は、さらなるクエリまたはタスクが実行されないことをユーザが示し、ユーザがシステムを終了し、処理900が一次停止または停止されることを管理者が指示し、ならびに/もしくは、異常挙動(例えば、異常ユーザ活動)が検出されたとの判定に応じて、完了したと判定される。処理900が完了したとの判定に応じて、処理900は終了する。処理900が完了していないとの判定に応じて、処理900は工程910に戻る。
【0125】
図10は、データベースシステムへのアクセスに関する異常なユーザ活動を検出するための方法を示すフローチャートである。様々な実施形態によると、ユーザ活動の記録またはロギングが、異常ユーザ活動を検出することに関連して用いられる。
【0126】
工程1010で、1セットの履歴アクセス活動が取得される。いくつかの実施形態において、1セットの履歴アクセス活動は、特定のテナントの1または複数のデータセットに関する活動に対応する。いくつかの実施形態において、1セットの履歴アクセス活動は、複数のテナントにわたる活動に対応してもよい。1セットの履歴アクセス活動は、ユーザ活動のレコード(例えば、ユーザクエリ、タスクの実行要求、ユーザに暴露されまたはユーザによってアクセスされた情報のタイプ、など)を含む。1セットの履歴活動は、レコードに関するコンテキストデータ(例えば、位置、時刻、日付、ユーザの役職、など)を含む。
【0127】
工程1020で、機械学習プロセスが、1セットの履歴アクセス活動に少なくとも部分的に基づいてトレーニングされる。いくつかの実施形態において、機械学習プロセスのトレーニングは、データセット(例えば、特定のテナントのデータセットなど)に関する正常なユーザ活動を定義することに関して、機械学習プロセスをトレーニングする。代替的または追加的に、機械学習プロセスのトレーニングは、データセットに関する正常ではないまたは異常なユーザ活動を定義することに関して、機械学習プロセスをトレーニングする。例えば、正常ではないまたは異常なものに対応すると予め定義されている1セットのユーザ活動が、正常ではないまたは異常なユーザ活動を定義するために機械学習プロセスのトレーニングで用いられる。
【0128】
工程1030で、タスクの実行要求が受信される。いくつかの実施形態において、タスクの実行要求は、PIIまたはテナント機密情報を格納しているデータベースにアクセスする要求を含む。いくつかの実施形態において、タスクの実行要求は、別のユーザ(例えば、テナントに関連付けられている個人)のPIIにアクセスする要求を備える。いくつかの実施形態において、タスクの実行要求は、テナント機密情報にアクセスする要求を含む。いくつかの実施形態において、タスクの実行要求は、クライアント端末へのユーザ入力などを介して、ユーザから受信される。例えば、タスクの実行要求は、ユーザシステム120および/またはユーザシステム130へユーザによって入力される。別の例として、タスクの実行要求は、管理者システム125へ管理者によって入力される。別の例として、タスクの実行要求は、ユーザに提供されるダッシュボードまたはその他のユーザインターフェース(例えば、ユーザが関連付けられている組織内の従業員に対して提示された休暇日数を示すレポートなど、ダッシュボードレポート)を提供することなどに関連して、ユーザの代わりに自動的に開始される。タスクの実行要求は、所定のスケジュールまたはリフレッシュ頻度などに従って、ユーザに提供されるダッシュボードまたはその他のユーザインターフェースがリフレッシュされるとの決定に応じて受信されうる。タスクの実行要求は、システムが情報(興味深いと判定された情報など、例えば、異常値または統計的に関連付けられていると判定された情報、日、月、年などの時刻に基づくなどして、ユーザが受信する可能性があるとシステムが推測する情報、ユーザのストーリーとして収集された情報(傾向の表示またはサマリーを提供する情報など)、など)をユーザへ自動的に提供するとの決定に応じて受信されうる。
【0129】
一例として、タスクの実行要求は、テナントに関連付けられているターゲットユーザに対応するユーザプロファイルを閲覧する要求を含む。ユーザプロファイルは、役職、住所、報酬など、ターゲットユーザのPIIを格納する。別の例として、タスクの実行要求は、テナントに関連付けられている企業秘密ログを閲覧する要求を含む。企業秘密ログは、テナントの製品またはプロセス、または、コスト、利益のような財務情報などに関連付けられている企業秘密に関する情報を格納し得る。別の例として、タスクの実行要求は、製品または製品の部品の設計を閲覧する要求を含む。製品または製品の部品の設計は、設計履歴ファイルなどを含みうる。いくつかの実施形態において、製品の設計などは、テナント機密情報である。別の例として、タスクの実行要求は、テナントに関連付けられている財務情報を閲覧する要求を含む。
【0130】
タスクの実行要求は、タスクに関する1または複数のパラメータを含む。一例として、タスクがクエリである場合、1または複数のパラメータは、クエリ文字列などを含む。タスクに関する1または複数のパラメータは、タスク定義(例えば、クエリ文字列)、タスクが実行されるデータベース(例えば、1または複数のデータセット)の表示、などを含む。いくつかの実施形態において、タスクの実行要求は、タスクの実行要求の送信元であるユーザまたは端末を識別する情報(例えば、ユーザ識別子、ログイン名、電子メールアドレス、IPアドレス、MACアドレス、端末識別子、など)、ならびに/もしくは、ユーザまたは端末に関連付けられている認証情報、などの識別情報を含む。一例として、タスクの実行要求がユーザの代わりに自動的に開始された場合、システムは、タスクの実行要求が代わりに自動的に開始されたユーザを認証する。例えば、タスクの実行要求は、ユーザに関連付けられている認証情報(例えば、ログイン識別子および/またはパスワード)を含む。
【0131】
工程1040で、タスクが異常であるか否かの判定がなされる。いくつかの実施形態において、システムは、機械学習プロセスに少なくとも部分的に基づいて、タスクが異常であるか否かを判定する。例えば、機械学習プロセスは、タスクが正常なユーザ活動の定義内にあるか否か、または、タスクが異常なユーザ活動の定義内にあるか否かを判定するために用いられる。タスクが異常であるか否かの判定は、タスク、タスクを要求したユーザ、および、ユーザに関連付けられているコンテキスト(例えば、タスクが要求された時(週末または夜中など)、要求がなされた場所(ユーザが普段居る場所から離れた世界中の位置に関連付けられているIPアドレスなど)、要求/アクセスされた情報のタイプがユーザまたは同様の状況のユーザによって通常はアクセスされない情報のタイプであるか否か)に少なくとも部分的に基づく。
【0132】
いくつかの実施形態において、タスクが異常であるか否かの判定は、タスク/ユーザ活動が正常なユーザ活動に対応する可能性を判定すること、および/または、タスクが異常なユーザ活動に対応する可能性を判定すること、を含む。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が正常な活動に関連付けられている閾値範囲内にある可能性があるとの判定に応じて、正常な活動と見なされる。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が正常な活動に関連付けられている閾値範囲内にない可能性があるとの判定に応じて、異常な活動と見なされる。いくつかの実施例において、正常な活動に関連付けられている閾値範囲は、機械学習法によって(例えば、機械学習法のトレーニングに基づいて)設定される。いくつかの実施例において、正常な活動に関連付けられている閾値範囲は、リスク閾値(例えば、テナントがユーザ活動を許可した際に取っても構わないリスクの量、テナントによって望まれる異常検出の感度、など)に基づいて、管理者(例えば、テナントの管理者)によって設定される。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が異常な活動に関連付けられている閾値範囲内にある可能性があるとの判定に応じて、異常な活動と見なされる。いくつかの実施例において、正常な活動に関連付けられている閾値範囲または異常な活動に関連付けられている閾値範囲は、機械学習法によって(例えば、機械学習法のトレーニングに基づいて)設定される。いくつかの実施例において、正常な活動に関連付けられている閾値範囲または異常な活動に関連付けられている閾値の範囲は、リスク閾値(例えば、テナントがユーザ活動を許可した際に取っても構わないリスクの量、テナントによって望まれる異常検出の感度、など)に基づいて、管理者(例えば、テナントの管理者)によって設定される。
【0133】
タスクが異常であると工程1040で判定したことに応じて、処理1000は、積極的対策が実行される工程1050に進む。積極的対策の例は、管理ユーザへの通知、テナントに関連付けられている1または複数の特定のユーザ(例えば、データプライバシー責任者、人材担当者、役員、など)への通知、異常挙動が検出されたユーザのアクセス権の制限(例えば、少なくともかかる制限が管理ユーザによって解除されるまでなど、データベースシステム125に関する将来のクエリまたはタスクの実行を制限する)を含む。いくつかの実施形態において、1または複数の積極的対策は、異常挙動の検出に応じて自動的に実行される。いくつかの実施形態において、プロンプトが、1または複数の積極的対策の起動のために管理ユーザに提供される。例えば、プロンプトは、異常挙動の通知、実行される1または複数の積極的対策の推奨、および/または、積極的対策を開始するための選択可能な要素を含む。次いで、処理1000は、工程1070に進む。
【0134】
タスクが異常ではないと工程1040で判定したことに応じて、処理1000は、タスクが実行される工程1060に進む。例えば、タスクがクエリである場合、クエリは、対応する1または複数のデータセットに対して実行される。いくつかの実施形態において、タスクを実行したことに応じて、タスクの実行の結果が、タスクの実行を要求したユーザに返される。例えば、システムは、ユーザのクライアント端末(例えば、ウェブブラウザ内のページなど、クライアント端末に表示されたユーザインターフェース)に、タスクの実行の結果を表示させる。別の例として、システムは、タスクの実行の結果を含むレポートを生成し、クライアント端末へレポートを提供する。次いで、処理1000は、工程1070に進む。
【0135】
工程1070で、機械学習プロセスは、タスクの実行要求に少なくとも部分的に基づいて更新される。いくつかの実施形態において、異常なユーザ活動を検出することに関連付けられているモデルが、タスクまたはタスクの実行要求と、タスクが異常であるか否かの判定とに基づいて更新される。モデルは、さらなるユーザ活動監視されると、継続的/動的に更新される。
【0136】
工程1080で、1000が完了したか否かについて判定がなされる。いくつかの実施形態において、処理1000は、さらなるクエリまたはタスクが実行されないことをユーザが示し、ユーザがシステムを終了し、処理1000が一次停止または停止されることを管理者が指示し、ならびに/もしくは、異常挙動(例えば、異常ユーザ活動)が検出されたとの判定に応じて、完了したと判定される。処理1000が完了したとの判定に応じて、処理1000は終了する。処理1000が完了していないとの判定に応じて、処理1000は工程1030に戻る。
【0137】
図11は、データベースシステムへのアクセスに関する異常なユーザ活動を検出するための方法を示すフローチャートである。様々な実施形態によると、ユーザ活動の記録またはロギングが、異常ユーザ活動を検出することに関連して用いられる。
【0138】
工程1110で、1セットの履歴アクセス活動が取得される。いくつかの実施形態において、1セットの履歴アクセス活動は、特定のテナントの1または複数のデータセットに関する活動に対応する。いくつかの実施形態において、1セットの履歴アクセス活動は、複数のテナントにわたる活動に対応してもよい。1セットの履歴アクセス活動は、ユーザ活動のレコード(例えば、ユーザクエリ、タスクの実行要求、ユーザに暴露されまたはユーザによってアクセスされた情報のタイプ、など)を含む。1セットの履歴活動は、レコードに関するコンテキストデータ(例えば、位置、時刻、日付、ユーザの役職、など)を含む。
【0139】
工程1120で、機械学習プロセスが、1セットの履歴アクセス活動に少なくとも部分的に基づいてトレーニングされる。いくつかの実施形態において、機械学習プロセスのトレーニングは、データセット(例えば、特定のテナントのデータセットなど)に関する正常なユーザ活動を定義することに関して、機械学習プロセスをトレーニングする。代替的または追加的に、機械学習プロセスのトレーニングは、データセットに関する正常ではないまたは異常なユーザ活動を定義することに関して、機械学習プロセスをトレーニングする。例えば、正常ではないまたは異常なものに対応すると予め定義されている1セットのユーザ活動が、正常ではないまたは異常なユーザ活動を定義するために機械学習プロセスのトレーニングで用いられる。
【0140】
工程1130で、ログ内のレコードが選択される。いくつかの実施形態において、ログは、ユーザ活動(例えば、テナントに関連付けられている1または複数のデータセットに関するユーザ活動)に関する情報を記録する。いくつかの実施形態において、記録されたユーザ活動に関するログは、1または複数のデータセットに関するタスクをユーザが実行したことに関連してユーザに暴露された可能性のある情報のサブセットまたは情報のタイプを少なくとも示す情報を含む。一例として、ログは、タスクが実行された1または複数のデータセットに格納されている個人情報またはテナント機密情報を暴露した可能性のあるタスクに関するユーザ活動のレコードを含む。一例として、ログは、実行されたタスクに関してユーザに暴露された(例えば、返された)可能性のある情報または情報のタイプを決定することに関連して、検索可能である。
【0141】
様々な実施形態によると、ログは、テナントに関連付けられている1または複数のデータセットに対する複数のユーザの活動に関する情報を含む。いくつかの実施形態において、ログは、テナントに関連付けられている1または複数のデータセットに対するすべてのユーザ活動(例えば、実行されたタスク)のレコードを含む。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。
【0142】
工程1140で、選択されたレコードに対応するタスクまたはタスクの実行要求が異常であるか否かの判定がなされる。いくつかの実施形態において、システムは、機械学習プロセスに少なくとも部分的に基づいて、選択されたレコードに対応するタスク、タスクの実行要求が、異常であるか否かを判定する。例えば、機械学習プロセスは、タスクまたはタスクの実行要求が正常なユーザ活動の定義内にあるか否か、または、タスクが異常なユーザ活動の定義内にあるか否かを判定するために用いられる。タスクが異常であるか否かの判定は、タスク、タスクを要求したユーザ、および、ユーザに関連付けられているコンテキスト(例えば、タスクが要求された時(週末または夜中など)、要求がなされた場所(ユーザが普段居る場所から離れた世界中の位置に関連付けられているIPアドレスなど)、要求/アクセスされた情報のタイプがユーザまたは同様の状況のユーザによって通常はアクセスされない情報のタイプであるか否か、タスクまたはタスクの実行要求が、複合的に異常な活動に対応する1セットまたは一連のタスクまたはタスクに含まれているか否か)に少なくとも部分的に基づく。一例として、1セットまたは一連のタスクに対応する異常な活動は、所定の期間内にテナント機密情報に関連付けられている複数のレポートを要求することを含みうる。一例として、1セットまたは一連のタスクに対応する異常な活動は、所定の期間内にテナント機密情報に関連付けられている複数のレポートを要求し、レポートを閲覧する要求の少なくとも一部の後に、それに対応して、ユーザがレポートにアクセスしているクライアントシステムへレポートをダウンロードすることを含みうる。一例として、1セットまたは一連のタスクに対応する異常な活動は、所定の期間内にテナント機密情報に関連付けられている複数のレポートを要求し、レポートを閲覧する要求の少なくとも一部の後に、それに対応して、レポートの情報のコピーまたはクリッピング(例えば、スクリーンショットのキャプチャ、抜粋、など)を行うことを含みうる。
【0143】
いくつかの実施形態において、タスクが異常であるか否かについてなされる判定は、タスク/ユーザ活動が正常なユーザ活動に対応する可能性を判定すること、および/または、タスクが異常なユーザ活動に対応する可能性を判定すること、を含む。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が正常な活動に関連付けられている閾値範囲内にある可能性があるとの判定に応じて、正常な活動と見なされる。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が正常な活動に関連付けられている閾値範囲内にない可能性があるとの判定に応じて、異常な活動と見なされる。いくつかの実施例において、正常な活動に関連付けられている閾値範囲は、機械学習法によって(例えば、機械学習法のトレーニングに基づいて)設定される。いくつかの実施例において、正常な活動に関連付けられている閾値範囲は、リスク閾値(例えば、テナントがユーザ活動を許可した際に取っても構わないリスクの量、テナントによって望まれる異常検出の感度、など)に基づいて、管理者(例えば、テナントの管理者)によって設定される。いくつかの実施形態において、ユーザ活動は、タスク/ユーザ活動が異常な活動に関連付けられている閾値範囲内にある可能性があるとの判定に応じて、異常な活動と見なされる。いくつかの実施例において、正常な活動に関連付けられている閾値範囲または異常な活動に関連付けられている閾値範囲は、機械学習法によって(例えば、機械学習法のトレーニングに基づいて)設定される。いくつかの実施例において、正常な活動に関連付けられている閾値範囲または異常な活動に関連付けられている閾値の範囲は、リスク閾値(例えば、テナントがユーザ活動を許可した際に取っても構わないリスクの量、テナントによって望まれる異常検出の感度、など)に基づいて、管理者(例えば、テナントの管理者)によって設定される。
【0144】
タスクが異常であると工程1140で判定したことに応じて、処理1100は、積極的対策が実行される工程1150に進む。積極的対策の例は、管理ユーザへの通知、テナントに関連付けられている1または複数の特定のユーザ(例えば、データプライバシー責任者、人材担当者、役員、など)への通知、異常挙動が検出されたユーザのアクセス権の制限(例えば、少なくともかかる制限が管理ユーザによって解除されるまでなど、データベースシステム125に関する将来のクエリまたはタスクの実行を制限する)を含む。いくつかの実施形態において、1または複数の積極的対策は、異常挙動の検出に応じて自動的に実行される。いくつかの実施形態において、プロンプトが、1または複数の積極的対策の起動のために管理ユーザに提供される。例えば、プロンプトは、異常挙動の通知、実行される1または複数の積極的対策の推奨、および/または、積極的対策を開始するための選択可能な要素を含む。次いで、処理1100は、工程1160に進む。
【0145】
タスクが異常ではないと工程1140で判定したことに応じて、処理1100は、工程1160に進む。
【0146】
工程1160で、1100が完了したか否かについて判定がなされる。いくつかの実施形態において、処理1100は、ログの解析が完了し、ユーザがシステムを終了し、処理1000が一次停止または停止されることを管理者が指示し、ならびに/もしくは、異常挙動(例えば、異常ユーザ活動)が検出されたとの判定に応じて、完了したと判定される。処理1100が完了したとの判定に応じて、処理1100は終了する。処理1100が完了していないとの判定に応じて、処理1100は工程1130に戻る。
【0147】
本明細書に記載されている実施形態の様々な例は、フローチャートに関連して記載されている。それらの例は、特定の順序で実行されるいくつかの工程を含みうるが、様々な実施形態に従って、様々な工程が、様々な順序で実行されてよく、および/または、様々な工程が、単一の工程に統合されまたは並行して実行されてよい。
【0148】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
【手続補正書】
【提出日】2024-03-18
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正の内容】
【0026】
様々な実施形態によると、ユーザ活動のログは、データ漏洩を判定することおよび/または異常挙動を検出することに関連して用いられてよい。いくつかの実施形態において、機械学習プロセスが、異常挙動を決定することに関連して用いられる。例えば、機械学習プロセスは、タスクの実行要求が異常であると判定し得る。タスクの実行要求が異常であるとの判定は、タスクの実行要求に関連付けられている情報がタスクの実行要求のなされたコンテキスト(例えば、タスクを実行することを要求しているユーザ、タスクの実行要求の送信元の位置、タスクの実行要求が受信された時間、判定済みの異常なタスクの実行要求と同時に受信されたタスクの実行要求のセット、判定済みの異常なタスクの実行要求が含まれる一連のタスクの実行要求、など)に関して統計的異常値であるとの判定に少なくとも部分的に基づいてなされる。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】変更
【補正の内容】
【0032】
様々な実施形態において、ユーザシステム120および/またはユーザシステム130は、パーソナルコンピュータ、携帯電話、タブレット、または、任意のその他の適切なユーザデバイスなど、1または複数のクライアント端末によって実装される。ユーザシステム120および/またはユーザシステム130は、ウエブインターフェースを介してデータベースシステム105および/またはセキュリティシステム135と通信する。例えば、ユーザシステム120および/またはユーザシステム130は、ユーザシステム120および/またはユーザシステム130上にインストールされたウェブブラウザを介して、データベースシステム105および/またはセキュリティシステム135と通信する。別の例として、ユーザシステム120および/またはユーザシステム130は、ユーザシステム120および/またはユーザシステム130上で実行するアプリケーションを介して、データベースシステム105および/またはセキュリティシステム135と通信する。ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105にアクセスする。例えば、ユーザは、ユーザシステム120を用いて、データベースシステム105上の人材データベースデータにアクセスし、ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105上の財務データベースデータにアクセスし、ユーザは、ユーザシステム120またはユーザシステム130を用いて、データベースシステム105上のデータを修正し、ユーザは、ユーザシステム120を用いて、データベースシステム105上のデータを消去する、などである。いくつかの実施形態において、ユーザは、さらに、ユーザシステム120またはユーザシステム130を用いて、直接的に、もしくは、データベースシステム105またはセキュリティシステム135を介して、ユーザ活動のログにアクセスする。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正の内容】
【0038】
様々な実施形態によると、セキュリティシステム135は、データベースシステム105に関するセキュリティを提供する。例えば、セキュリティシステム135は、特定のユーザがアクセスを許可されている情報(または情報のセット、など)を決定する。一例として、セキュリティシステム135は、情報に対するユーザ許可のマッピングに少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。別の例として、セキュリティシステム135は、情報(例えば、1つの情報、または、複数の情報)に対応するオブジェクトが、ユーザがかかるオブジェクトへアクセスする許可を有することを示す属性または情報を含むとの判定に少なくとも部分的に基づいて、ユーザが情報へアクセスする許可を有するか否かを判定する。いくつかの実施形態において、セキュリティシステム135は、データベースシステム105にアクセスしているユーザを認証し、もしくは、セキュリティシステム135は、ユーザが特定の活動を実行すること、または、特定の情報へアクセスすることを許可されているか否かを判定することに関連して、ユーザに関連付けられている認証情報を別の方法で利用する。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
いくつかの実施形態において、システム200は、ロギングモジュール245を備える。システム200は、ロギングモジュール245を用いて、ユーザ活動(1または複数
のデータセットに関するユーザ活動など)を記録する。様々な実施形態において、ロギングモジュール245は、
図1のシステム100のデータベースシステム105および/またはシステム100のセキュリティシステム135によって実装される。様々な実施形態によると、ロギングモジュール245は、1または複数
のデータセットに関するユーザ活動の1または複数の記録を格納するよう構成されている。一例として、1または複数の記録は、ログに格納される。別の例として、1または複数の記録は、ロギングキューに(例えば、一時的に)格納される。いくつかの実施形態において、ロギングキュー内の複数のレコード(例えば、情報)は、1または複数のバッチ基準が満たされたことなどに応じて、バッチとしてログにコミットされる。1または複数のバッチ基準は、ロギングキュー内のレコードの閾値数、ログへのレコードの最後のコミット以来経過した時間、日付および/または時刻、などに少なくとも部分的に基づいている。様々な実施形態において、ロギングキューは、ローカルにまたはキャッシュ内に格納され(例えば、ロギングキューは、セキュリティシステム135に格納されてよい)、ログは、リモートストレージおよび/またはインデックス付きストレージに格納され(例えば、ログは、データベースシステム125に格納されてよい)、もしくは、任意のその他の適切なシステムに格納される。レコードのキューイング(例えば、ユーザ活動のキューイング)および/またはスレッドプール最適化は、システム(テナントデータ(例えば、顧客従業員レコードなど)の取得およびそれに関する報告も行うシステムなど)に悪影響を与えることなしに、多くのユーザ(例えば、数百万以上のユーザなど)のビューに対するレコードのロギングを可能にする。様々な実施形態によると、ログに含まれるレコードは、変更不可能である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0051
【補正方法】変更
【補正の内容】
【0051】
いくつかの実施形態において、システム200は、異常検出モジュール255を備える。システム200は、異常検出モジュール255を用いて、1または複数のデータセットに関する異常ユーザ活動(例えば、異常クエリなど)などの異常挙動を検出する。様々な実施形態において、異常検出モジュール255は、
図1のシステム100のデータベースシステム105および/またはシステム100のセキュリティシステム135によって実装される。異常ユーザ活動は、ロギングキュー内のレコードおよび/またはログ内のレコード(例えば、ロギングキューからログにコミットされたレコード)など、ユーザ活動に関するレコードの解析に少なくとも部分的に基づいて検出される。様々な実施形態によると、ユーザ活動のログは、データ漏洩を判定することおよび/または異常挙動を検出することに関連して用いられる。いくつかの実施形態において、機械学習プロセスが、異常挙動を決定することに関連して用いられる。例えば、機械学習プロセスは、タスクの実行要求が異常であると判定する。タスクの実行要求が異常であるとの判定は、タスク
の実行要求に関連付けられている情報がタスクの実行要求のなされたコンテキスト(例えば、タスクを実行することを要求しているユーザ、タスクの実行要求の送信元の位置、タスクの実行要求が受信された時間、判定済みの異常なタスクの実行要求と同時に受信されたタスクの実行要求のセット、判定済みの異常なタスクの実行要求が含まれる一連のタスクの実行要求、など)に関して統計的異常値であるとの判定に少なくとも部分的に基づいてなされる。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0073
【補正方法】変更
【補正の内容】
【0073】
サブジェクト情報フィールド430は、タスクの実行に応じてユーザに暴露されたサブジェクト情報の表示を含む。いくつかの実施形態において、サブジェクト情報フィールド430は、ユーザに暴露された特定のサブジェクト情報、または、ユーザに暴露されたサブジェクト情報のタイプ、または、それら両方を含む。様々な実施形態によると、サブジェクト情報は、テナントに関する機密情報(テナントに関連付けられている個人またはユーザのPIIなど)、テナントに関する専有情報、などに対応する。一例として、テナントに関連付けられている個人またはユーザ(特定のターゲットユーザまたは1セットのターゲットユーザなど)のPIIがクエリされる(例えば、ターゲットユーザに関連付けられているプロファイル)。別の例として、テナントに関する専有情報は、特定のテナント機密情報または1セットのテナント機密情報を含む(例えば、新しい製品に関するビジネスプラン、企業機密、製品、調査プログラム、従業員)。一例として、サブジェクト情報が、テナントに関連付けられている個人またはユーザのPIIに対応する場合、サブジェクトフィールド430は、タスクの実行に応じて情報がユーザに暴露された個人またはユーザの表示を含む。或るタイプのサブジェクト情報がユーザに暴露された旨の表示は、サブジェクト情報が、PII、財務データ、研究開発データ、知的所有権、などであったことの表示を含みうる。別の例として、サブジェクト情報が、テナントに関する専有情報に対応する場合、サブジェクトフィールド430は、タスクの実行に応じてユーザに暴露された情報のタイプまたは特定の情報(例えば、特定のテナント機密情報の、情報が暴露された個人またはユーザのPII、など)を含む。一例として、ログ400の2行目に示されているように、サブジェクト情報フィールド430は、Jane Doeに関する情報がアクセスされた(例えば、Jane Doeに関する情報が、対応するタスクの実行に関連して返された)ことを示している。別の例として、ログ400の3行目に示されているように、サブジェクト情報フィールド430は、Jane Smith、Jane Doe、および、John Doeに関する情報がアクセスされた(例えば、かかる個人に関する情報が、対応するタスクの実行に関連して返された)ことを示している。いくつかの実施形態において、サブジェクト情報フィールド430は、対応するタスクの実行に応じてPIIが返されたユーザまたは個人を示すために用いられる。いくつかの実施形態において、サブジェクト情報フィールド430は、対応するタスクの実行に応じてユーザに返された特定のテナント機密情報を記録し/示すために用いられる。一例として、企業秘密データベース/ログ内の情報がユーザに暴露されたことに関連して、システムは、レコードまたはトランザクションのサブジェクトフィールドに、ユーザに暴露された特定の企業秘密の表示(例えば、企業秘密に関連付けられているプロジェクト名など)を記録する。一例として、R&Dプロジェクト(例えば、プロジェクト「アルファ」)に関する情報がユーザに暴露されたことに関連して、システムは、レコードまたはトランザクションのサブジェクトフィールドに、ユーザに暴露された特定の情報の表示(例えば、プロジェクトアルファの要素Xの設計履歴ファイル、プロジェクトアルファの要素Yのテスト結果、など)を記録する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0075
【補正方法】変更
【補正の内容】
【0075】
様々な実施形態によると、ログ400は、許可ユーザのアクセス許可に基づいて許可ユーザに提供される情報を制限するように、情報を提供する。一例として、ログ400は、情報(例えば、タスクの実行に応じてユーザに返された情報)を指し示しているが、データベースに関するタスクの実行要求に応じてユーザに返される1セットの情報の内のサブセットを格納していない。ログ400は、許可ユーザがタスクの実行に関連してユーザに返された基礎情報にアクセスを試みることができるリンク(例えば、ハイパーリンク)を含む。例として、ログ400は、従業員Jane Doe(組織のCFO)に関する情報にリンクされた選択可能リンク445を含む。したがって、Jane Doeに関する具体的なPIIは、ログ400が閲覧/検索された時に表示されないが、システムは、許可ユーザからの選択によってアクセスされるJane Doeに関する基礎情報を指し示している。いくつかの実施形態において、ログ400の少なくとも一部は、別のユーザ(例えば、管理者など)に提供され、ログは、1セットの情報の内のログが指し示すサブセットの少なくとも一部への選択可能なリンク(例えば、選択可能リンク440または選択可能リンク445など)を提供するように提供される。選択可能リンクを選択するための入力を受信したことに応じて、システムまたは方法(例えば、セキュリティまたは承認モジュール)は、他のユーザが選択可能リンクの指し示す情報へのアクセスを許可されているか否かを判定する。例えば、Jane Doeの情報を指し示す選択可能リンク445または報酬集計表を指し示す選択可能リンク440の選択に応じて、タスク(例えば、基礎情報の閲覧/アクセス)が、対応する選択可能リンク(例えば、選択可能リンク440または選択可能リンク445)を選択したユーザに許可されているか否かの判定がなされる。他のユーザが選択可能リンクの指し示す情報)へのアクセスを許可されているとの判定に応じて、他のユーザは、選択可能リンクの指し示す情報へのアクセスを許可される。例えば、システムは、かかる基礎情報に対応する情報/レポートをクライアント端末のユーザインターフェースに表示させる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0078
【補正方法】変更
【補正の内容】
【0078】
工程520で、タスクの許可が取得される。タスクの許可は、タスクの実行を要求するために必要な許可、または、タスクの実行からの結果を取得するために必要な許可に対応する。いくつかの実施形態において、タスクの許可は、タスクに対する許可のマッピングから取得される。例えば、タスクの許可は、ユーザごと(例えば、ユーザ識別子に基づいて)、役職ごと(例えば、ユーザが、管理職、役員、法務職員、などのいずれであるか)、部署ごと(例えば、ユーザが、法務部、経営陣、研究開発部、人材部、などのいずれであるか)、などで定義される。ユーザに対するその他の許可設定または分類が、ユーザに対する許可または別の方法で定義された許可設定を設定するために用いられる。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0081
【補正方法】変更
【補正の内容】
【0081】
工程530でユーザがタスクに必要な許可を有して
いないと判定されたことに応じて、処理500は、ユーザに対してタスクが承認されていない旨の指示が提供される工程550に進む。いくつかの実施形態において、ユーザに対してタスクが承認されている旨の指示は、
図3の処理300に提供される。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0133
【補正方法】変更
【補正の内容】
【0133】
タスクが異常であると工程1040で判定したことに応じて、処理1000は、積極的対策が実行される工程1050に進む。積極的対策の例は、管理ユーザへの通知、テナントに関連付けられている1または複数の特定のユーザ(例えば、データプライバシー責任者、人材担当者、役員、など)への通知、異常挙動が検出されたユーザのアクセス権の制限(例えば、少なくともかかる制限が管理ユーザによって解除されるまでなど、データベースシステム105に関する将来のクエリまたはタスクの実行を制限する)を含む。いくつかの実施形態において、1または複数の積極的対策は、異常挙動の検出に応じて自動的に実行される。いくつかの実施形態において、プロンプトが、1または複数の積極的対策の起動のために管理ユーザに提供される。例えば、プロンプトは、異常挙動の通知、実行される1または複数の積極的対策の推奨、および/または、積極的対策を開始するための選択可能な要素を含む。次いで、処理1000は、工程1070に進む。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0144
【補正方法】変更
【補正の内容】
【0144】
タスクが異常であると工程1140で判定したことに応じて、処理1100は、積極的対策が実行される工程1150に進む。積極的対策の例は、管理ユーザへの通知、テナントに関連付けられている1または複数の特定のユーザ(例えば、データプライバシー責任者、人材担当者、役員、など)への通知、異常挙動が検出されたユーザのアクセス権の制限(例えば、少なくともかかる制限が管理ユーザによって解除されるまでなど、データベースシステム105に関する将来のクエリまたはタスクの実行を制限する)を含む。いくつかの実施形態において、1または複数の積極的対策は、異常挙動の検出に応じて自動的に実行される。いくつかの実施形態において、プロンプトが、1または複数の積極的対策の起動のために管理ユーザに提供される。例えば、プロンプトは、異常挙動の通知、実行される1または複数の積極的対策の推奨、および/または、積極的対策を開始するための選択可能な要素を含む。次いで、処理1100は、工程1160に進む。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0148
【補正方法】変更
【補正の内容】
【0148】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
[適用例1]システムであって、
1または複数のプロセッサであって、
データベースに関するタスクの実行要求を受信し、前記要求は、前記要求に関連するユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定し、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得し、
前記1セットの情報のサブセットを決定し、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納するよう構成されている、1または複数のプロセッサと、前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含み、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成されている1または複数のメモリと、
を備える、システム。
[適用例2]適用例1に記載のシステムであって、前記レコードは、さらに、前記タスクの前記実行要求が受信された時刻または日付、もしくは、前記ユーザがアクセスを許可されている前記1セットの情報が前記ユーザに提供された時刻または日付、の内の1または複数を含む、システム。
[適用例3]適用例1に記載のシステムであって、前記レコードを格納することは、
前記レコードに関する情報をロギングキューに格納し、前記ロギングキューは、複数のタスクの実行要求にそれぞれ対応する複数のレコードについてのレコード情報を含み、
レコードをコミットすることに関連付けられている1または複数のバッチ基準が満たされたと判定し、
前記レコードをコミットすることに関連付けられている前記1または複数のバッチ基準が満たされたと判定したことに応じて、前記ロギングキュー内の前記レコードに関係するログにレコード情報をコミットすることを備える、システム。
[適用例4]適用例3に記載のシステムであって、前記ログは、前記ログの閲覧または利用の許可を有するデータベースシステムの他のユーザによって検索可能である、システム。
[適用例5]適用例4に記載のシステムであって、前記許可ユーザは、前記レコードが前記ログに格納されている1または複数のタスクに関して返された或るタイプの情報の1また複数に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
[適用例6]適用例3に記載のシステムであって、前記ログは、前記データベースに関する前記タスクの前記実行要求に応じて前記ユーザに返される前記1セットの情報の内の前記サブセットを指し示しているが、格納していない、システム。
[適用例7]適用例3に記載のシステムであって、
前記ログは、データベースシステムの許可ユーザによって検索可能であり、
前記ログは、前記データベースに関する前記タスクの前記実行要求に応じて前記ユーザに返される前記1セットの情報の内の前記サブセットを指し示しているが、格納しておらず、
前記1または複数のプロセッサは、さらに、
前記ログの少なくとも一部を他のユーザに提供し、前記ログは、前記ログが指し示す、前記1セットの情報の内の前記サブセットの少なくとも一部への選択可能リンクを提供するように提供され、
前記選択可能リンクを選択するための入力を受信したことに応じて、前記他のユーザが前記選択可能リンクの指し示す情報へのリンクに対するアクセスを許可されているか否かを判定し、
前記他のユーザが前記選択可能リンクの指し示す情報への前記リンクに対するアクセスを許可されているとの判定に応じて、前記選択可能リンクの指し示す情報への前記アクセスリンクを前記他のユーザに提供するよう構成されている、システム。
[適用例8]適用例3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、ユーザの識別子に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
[適用例9]適用例3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、前記レコードが前記ログに格納されている前記タスクに関して返された前記1セットの情報に関連付けられている識別子に少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
[適用例10]適用例3に記載のシステムであって、
前記ログは、データベースシステムの他のユーザによって検索可能であり、前記他のユーザは、前記ログの閲覧または利用の許可を有し、
前記他のユーザは、前記タスクの前記実行要求に応じて前記ユーザに返された前記1セットの情報のタイプに少なくとも部分的に基づいて、前記ログをクエリし得る、システム。
[適用例11]適用例3に記載のシステムであって、前記1または複数のバッチ基準は、情報がロギングキューに格納されているレコードの数を含む、システム。
[適用例12]適用例3に記載のシステムであって、前記1または複数のプロセッサは、さらに、
データベースシステムに関連付けられている組織の一員によって要求されたタスクに関する異常を検出する目的で前記ログを解析するために、機械学習プロセスを適用し、
前記異常を検出したことに応じて、積極的対策を実行するよう構成されている、システム。
[適用例13]適用例12に記載のシステムであって、前記機械学習プロセスは、前記データベースシステムの複数のユーザによって要求された複数のタスクに関する履歴情報を用いてトレーニングされる、システム。
[適用例14]適用例1に記載のシステムであって、前記1セットの情報は、データベースシステムに関連付けられているテナントの1または複数のユーザまたは従業員に関するユーザ情報または従業員情報を含む、システム。
[適用例15]適用例1に記載のシステムであって、前記情報のサブセットを決定することは、前記ユーザが、前記1セットの情報の内の1情報に関連付けられているアクセス許可を有するか否かを判定することを含む、システム。
[適用例16]適用例15に記載のシステムであって、
前記ユーザが前記1セットの情報の内の1情報に関連付けられているアクセス許可を有するか否かを判定することは、オブジェクトまたは前記オブジェクトの属性の内の1または複数に関連付けられているアクセス許可を判定することを備え、
前記データベースは、オブジェクト指向のデータベースであり、
前記オブジェクトは、前記オブジェクト指向のデータベースに含まれている、システム。
[適用例17]適用例1に記載のシステムであって、前記タスクは、データベースシステムに関連付けられている組織の従業員に関する報酬情報を含むレポートを取得することを含む、システム。
[適用例18]適用例1に記載のシステムであって、
前記タスクの前記実行要求は、前記システムが前記タスクに応答する情報を前記ユーザに提供すると決定したことに応じて、前記ユーザの代わりに自動的に開始され、
前記システムは、前記ユーザ、前記システム、または、前記タスクに応答する情報のコンテキストに少なくとも部分的に基づいて、前記タスクに応答する情報を前記ユーザに提供すると決定する、システム。
[適用例19]方法であって、
1または複数のプロセッサによって、データベースに関するタスクの実行要求を受信し、前記要求は、前記要求に関連付けられているユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定し、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得し、
前記1セットの情報のサブセットを決定し、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納することを備え、前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含む、方法。
[適用例20]データベースシステムに格納されている情報に関するタスクを監視するためのコンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
1または複数のプロセッサによって、データベースに関するタスクの実行要求を受信するためのコンピュータ命令と、前記要求は、前記要求に関連付けられているユーザに対応する識別子に関連付けられており、
前記ユーザに対して前記タスクが承認されているか否かを判定するためのコンピュータ命令と、
前記ユーザに対して前記タスクが承認されているとの判定に応じて、前記タスクに対して返される1セットの情報を取得するためのコンピュータ命令と、
前記1セットの情報のサブセットを決定するためのコンピュータ命令と、前記1セットの情報の前記サブセットは、前記1セットの情報の内、前記ユーザがアクセス許可を有する1または複数の部分を含み、
前記タスクの前記実行要求のレコードを格納するためのコンピュータ命令と、を備え前記レコードは、前記ユーザの表示と、前記1セットの情報のサブセットの表示と、を含む、コンピュータプログラム製品。
【国際調査報告】