(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】個人情報の調査結果の信頼性レベルを特定するための機械学習システムおよび方法
(51)【国際特許分類】
G06F 16/245 20190101AFI20221128BHJP
G06F 16/33 20190101ALI20221128BHJP
G06N 20/00 20190101ALI20221128BHJP
【FI】
G06F16/245
G06F16/33
G06N20/00
(21)【出願番号】P 2021506576
(86)(22)【出願日】2019-08-13
(86)【国際出願番号】 US2019046352
(87)【国際公開番号】W WO2020036959
(87)【国際公開日】2020-02-20
【審査請求日】2022-02-21
(32)【優先日】2018-08-13
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521050096
【氏名又は名称】ビッグアイディー インコーポレイテッド
【氏名又は名称原語表記】BigID Inc.
(74)【代理人】
【識別番号】100139723
【氏名又は名称】樋口 洋
(72)【発明者】
【氏名】エヌーカ,イェホシュア
(72)【発明者】
【氏名】ヴァックス,ニムロッド
(72)【発明者】
【氏名】サハロフ,エーヤル
(72)【発明者】
【氏名】アペル,イタマル
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2006-221560(JP,A)
【文献】特開2015-041145(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 20/00
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
データソース内の個人情報を検索および分類するコンピュータ実装の方法であって、
第1の属性値に関連付けられた第1の属性フィールドおよび第2の属性値に関連付けられた第2の属性フィールドを含むIDデータソースをコンピュータにより受信する工程;
前記コンピュータにより、第1のスキャンされた値に関連付けられた第1のスキャンされたフィールドを含むスキャンされたデータソースを受信する工程;
前記第1の属性値を前記第1のスキャンされた値と比較することによって決定された第1のセットの個人情報結果および前記第2の属性値を前記第1のスキャンされた値と比較することによって決定された第2のセットの個人情報結果を含む、複数の個人情報結果を、前記コンピュータにより決定する工程;
前記第1のセットの個人情報結果の一部またはすべてから作成された第1のセットの個人情報レコードおよび前記第2のセットの個人情報結果の一部またはすべてから作成された第2のセットの個人情報レコードを含む、複数の個人情報結果の一部またはすべてから作成された複数の個人情報レコードを、前記コンピュータにより作成する工程;
前記第1のセットの個人情報結果のカウント、ならびに、前記第1のスキャンされた値のカウント
、前記第1のセットの個人情報レコードのカウント、および、前記第1のセットの個人情報レコードのカウントと前記第2のセットの個人情報レコードのカウントの合計の
1つ以上に基づいて、前記第1のスキャンされたフィールドおよび前記第1の属性フィールドについて第1の信頼性レベルを、前記コンピュータにより計算する工程;
前記第2のセットの個人情報結果のカウント、ならびに、前記第1のスキャンされた値のカウント
、前記第2のセットの個人情報レコードのカウント、および、前記第1のセットの個人情報レコードのカウントと前記第2のセットの個人情報レコードのカウントの合計の
1つ以上に基づいて、前記第1のスキャンされたフィールドおよび前記第2の属性フィールドについて第2の信頼性レベルを、前記コンピュータにより計算する工程;
前記第1の信頼性レベルが最小信頼性閾値以上であり前記第2の信頼性レベルが前記最小信頼性閾値未満であると決定すると、前記コンピュータにより、レポートにおいて前記第2の属性フィールドではなく前記第1の属性フィールドを前記第1のスキャンされたフィールドと関連付ける工程;および
前記レポートをユーザーデバイスに提供する工程
を含む、方法。
【請求項2】
前記スキャンされたデータソースがさらに、第2のスキャンされた値と関連付けられた第2のスキャンされたフィールドを含み、
前記複数の個人情報結果がさらに、
前記第1の属性値を前記第2のスキャンされた値と比較することによって決定された第
3のセットの個人情報結果;および
前記第2の属性値を前記第2のスキャンされた値と比較することによって決定された第4のセットの個人情報結果;
を含み、
前記複数の個人情報レコードがさらに、
前記第3のセットの個人情報結果の一部またはすべてから作成された第3のセットの個人情報レコード;および
前記第4のセットの個人情報結果の一部またはすべてから作成された第4のセットの個人情報レコード;
を含み、
前記方法がさらに、
前記第2のスキャンされた値のカウント、前記第3のセットの個人情報結果のカウント、前記第3のセットの個人情報レコードのカウント、および、前記第3のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計の複数に基づいて、前記第2のスキャンされたフィールドおよび前記第1の属性フィールドについて第3の信頼性レベルを、前記コンピュータにより計算する工程;
前記第2のスキャンされた値のカウント、前記第4のセットの個人情報結果のカウント、前記第4のセットの個人情報レコードのカウント、および、前記第3のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計の複数に基づいて、前記第2のスキャンされたフィールドおよび前記第2の属性フィールドについて第4の信頼性レベルを、前記コンピュータにより計算する工程;および
前記第4の信頼性レベルが前記最小信頼性閾値以上であり前記第3の信頼性レベルが前記最小信頼性閾値未満であると決定すると、前記レポートにおいて前記第1の属性フィールドではなく前記第2の属性フィールドを前記第2のスキャンされたフィールドと関連付ける工程
を含む、
ことを特徴とする、請求項1に記載のコンピュータ実装の方法。
【請求項3】
前記第1の信頼性レベルを計算する工程がさらに、前記第1のセットの個人情報レコードのカウントと前記第3のセットの個人情報レコードのカウントの合計に基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計に基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1のセットの個人情報レコードのカウントと前記第3のセットの個人情報レコードのカウントの合計に基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計に基づく
ことを特徴とする、請求項2に記載のコンピュータ実装の方法。
【請求項4】
前記第1の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第1のセットの個人情報結果のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第2のセットの個人情報結果のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第3のセットの個人情報結果のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第4のセットの個人情報結果のカウントに基づく
ことを特徴とする、請求項3に記載のコンピュータ実装の方法。
【請求項5】
前記第1の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第1のセットの個人情報レコードのカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第2のセットの個人情報レコードのカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第3のセットの個人情報レコードのカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第4のセットの個人情報レコードのカウントに基づく
ことを特徴とする、請求項4に記載のコンピュータ実装の方法。
【請求項6】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する確実な一致の第1のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する確実な一致の第2のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する確実な一致の第1のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する確実な一致の第2のカウントに基づく
ことを特徴とする、請求項5に記載のコンピュータ実装の方法。
【請求項7】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する完全な一致の第1のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する完全な一致の第2のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する完全な一致の第1のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する完全な一致の第2のカウントに基づく
ことを特徴とする、請求項6に記載のコンピュータ実装の方法。
【請求項8】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する確実かつ完全な一致の第1のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する確実かつ完全な一致の第2のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する確実かつ完全な一致の第1のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する確実かつ完全な一致の第2のカウントに基づく
ことを特徴とする、請求項7に記載のコンピュータ実装の方法。
【請求項9】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドと関連付けられた名前および前記第1のスキャンされたフィールドと関連付けられた名前について決定された第1の名前類似性の値に基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドと関連付けられた名前および前記第1のスキャンされたフィールドと関連付けられた名前について決定された第2の名前類似性の値に基づく
ことを特徴とする、請求項8に記載のコンピュータ実装の方法。
【請求項10】
レーベンシュタイン距離を使用して、前記第1の名前類似性の値および前記第2の名前類似性の値を決定することを特徴とする、請求項9に記載のコンピュータ実装の方法。
【請求項11】
前記レポートがさらに、前記スキャンされたデータソースと関連付けられたスキャンされたデータソース情報を含み、
該スキャンされたデータソース情報が、前記スキャンされたデータソース中の列の総数、前記複数の個人情報結果を決定するために使用された列のサブセット、該列のサブセットについて決定された個人情報結果の総数、および、該個人情報結果の総数について作成された個人情報レコードの総数を含む
ことを特徴とする、請求項1に記載のコンピュータ実装の方法。
【請求項12】
前記第1の属性フィールドおよび前記第2の属性フィールドがそれぞれ、名前、社会保障番号、電話番号、住所、電子メールアドレス、運転免許証番号、パスポート番号、クレジットカード番号、ユーザーネーム、生年月日、個人の健康情報、教育情報およびそれらの組合せからなる群より選択される個人情報属性と関連付けられることを特徴とする、請求項1に記載のコンピュータ実装の方法。
【請求項13】
ランダムフォレストまたはロジスティック回帰機械学習モデルを使用して、前記第1および第2の信頼性レベルを計算することを特徴とする、請求項1に記載のコンピュータ実装の方法。
【請求項14】
1つまたは複数のコンピュータおよび該1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータにオペレーションを実行させる命令を格納する1つまたは複数の記憶装置を含むシステムであって、
前記オペレーションが、
第1の属性値に関連付けられた第1の属性フィールドおよび第2の属性値に関連付けられた第2の属性フィールドを含むIDデータソースを受信する工程;
第1のスキャンされた値に関連付けられた第1のスキャンされたフィールドを含むスキャンされたデータソースを受信する工程;
前記第1の属性値を前記第1のスキャンされた値と比較することによって決定された第1のセットの個人情報結果および前記第2の属性値を前記第1のスキャンされた値と比較することによって決定された第2のセットの個人情報結果を含む、複数の個人情報結果を決定する工程;
前記第1のセットの個人情報結果の一部またはすべてから作成された第1のセットの個人情報レコードおよび前記第2のセットの個人情報結果の一部またはすべてから作成された第2のセットの個人情報レコードを含む、複数の個人情報結果の一部またはすべてから作成された複数の個人情報レコードを作成する工程;
前記第1のセットの個人情報結果のカウント、ならびに、前記第1のスキャンされた値のカウント
、前記第1のセットの個人情報レコードのカウント、および、前記第1のセットの個人情報レコードのカウントと前記第2のセットの個人情報レコードのカウントの合計の
1つ以上に基づいて、前記第1のスキャンされたフィールドおよび前記第1の属性フィールドについて第1の信頼性レベルを計算する工程;
前記第2のセットの個人情報結果のカウント、ならびに、前記第1のスキャンされた値のカウント
、前記第2のセットの個人情報レコードのカウント、および、前記第1のセットの個人情報レコードのカウントと前記第2のセットの個人情報レコードのカウントの合計の
1つ以上に基づいて、前記第1のスキャンされたフィールドおよび前記第2の属性フィールドについて第2の信頼性レベルを計算する工程;
前記第1の信頼性レベルが最小信頼性閾値以上であり前記第2の信頼性レベルが前記最小信頼性閾値未満であると決定すると、レポートにおいて前記第2の属性フィールドではなく前記第1の属性フィールドを前記第1のスキャンされたフィールドと関連付ける工程;および
前記レポートをユーザーデバイスに提供する工程
を含む、システム。
【請求項15】
前記スキャンされたデータソースがさらに、第2のスキャンされた値と関連付けられた第2のスキャンされたフィールドを含み、
前記複数の個人情報結果がさらに、
前記第1の属性値を前記第2のスキャンされた値と比較することによって決定された第
3のセットの個人情報結果;および
前記第2の属性値を前記第2のスキャンされた値と比較することによって決定された第4のセットの個人情報結果;
を含み、
前記複数の個人情報レコードがさらに、
前記第3のセットの個人情報結果の一部またはすべてから作成された第3のセットの個人情報レコード;および
前記第4のセットの個人情報結果の一部またはすべてから作成された第4のセットの個人情報レコード;
を含み、
前記オペレーションがさらに、
前記第2のスキャンされた値のカウント、前記第3のセットの個人情報結果のカウント、前記第3のセットの個人情報レコードのカウント、および、前記第3のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計の複数に基づいて、前記第2のスキャンされたフィールドおよび前記第1の属性フィールドについて第3の信頼性レベルを計算する工程;
前記第2のスキャンされた値のカウント、前記第4のセットの個人情報結果のカウント、前記第4のセットの個人情報レコードのカウント、および、前記第3のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計の複数に基づいて、前記第2のスキャンされたフィールドおよび前記第2の属性フィールドについて第4の信頼性レベルを計算する工程;および
前記第4の信頼性レベルが前記最小信頼性閾値以上であり前記第3の信頼性レベルが前記最小信頼性閾値未満であると決定すると、前記レポートにおいて前記第1の属性フィールドではなく前記第2の属性フィールドを前記第2のスキャンされたフィールドと関連付ける工程
を含む、
ことを特徴とする、請求項14に記載のシステム。
【請求項16】
前記第1の信頼性レベルを計算する工程がさらに、前記第1のセットの個人情報レコードのカウントと前記第3のセットの個人情報レコードのカウントの合計に基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計に基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1のセットの個人情報レコードのカウントと前記第3のセットの個人情報レコードのカウントの合計に基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2のセットの個人情報レコードのカウントと前記第4のセットの個人情報レコードのカウントの合計に基づく
ことを特徴とする、請求項15に記載のシステム。
【請求項17】
前記第1の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第1のセットの個人情報結果のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第2のセットの個人情報結果のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第3のセットの個人情報結果のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第4のセットの個人情報結果のカウントに基づく
ことを特徴とする、請求項16に記載のシステム。
【請求項18】
前記第1の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第1のセットの個人情報レコードのカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第2のセットの個人情報レコードのカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、一意の第1の属性値と関連付けられた前記第3のセットの個人情報レコードのカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、一意の第2の属性値と関連付けられた前記第4のセットの個人情報レコードのカウントに基づく
ことを特徴とする、請求項17に記載のシステム。
【請求項19】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドに関連する確実な一致の第1のカウント、前記第1の属性フィールドに関連する完全な一致の第1のカウント、および前記第1の属性フィールドに関連する確実かつ完全な一致の第1のカウントに基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドに関連する確実な一致の第2のカウント、前記第2の属性フィールドに関連する完全な一致の第2のカウント、および前記第2の属性フィールドに関連する確実かつ完全な一致の第2のカウントに基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記確実な一致の第1のカウント、前記完全な一致の第1のカウント、および前記確実かつ完全な一致の第1のカウントに基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記確実な一致の第2のカウント、前記完全な一致の第2のカウント、および前記確実かつ完全な一致の第2のカウントに基づく
ことを特徴とする、請求項18に記載のシステム。
【請求項20】
前記第1の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドと関連付けられた名前および前記第1のスキャンされたフィールドと関連付けられた名前について決定された第1の名前類似性の値に基づき、
前記第2の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドと関連付けられた名前および前記第1のスキャンされたフィールドと関連付けられた名前について決定された第2の名前類似性の値に基づき、
前記第3の信頼性レベルを計算する工程がさらに、前記第1の属性フィールドと関連付けられた名前および前記第2のスキャンされたフィールドと関連付けられた名前について決定された第3の名前類似性の値に基づき、
前記第4の信頼性レベルを計算する工程がさらに、前記第2の属性フィールドと関連付けられた名前および前記第2のスキャンされたフィールドと関連付けられた名前について決定された第4の名前類似性の値に基づく
ことを特徴とする、請求項19に記載のシステム。
【請求項21】
コンピュータによって実行されると該コンピュータに請求項1~13のいずれか一項に記載のコンピュータ実装の方法を実行させる命令を格納する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、ここに参照することによってその全体において本願に援用される、2018年8月13日出願の「Machine Learning System and Methods for Determining Confidence Levels of Personal Information Finginds」と題された米国仮特許出願第62/718,349号の優先権を主張する。
【背景技術】
【0002】
本出願は、概して、データの分析(discovery)および保護に関する。より詳細には、本出願は、任意の数のデータソースに格納されている個人情報を分析および分類するためのシステムおよび方法に関する。
【0003】
デジタル経済では、顧客の信用と信頼を維持するには、個人の識別情報を紛失、盗難および誤用から保護する必要がある。情報技術およびインターネットによって、インターネットセキュリティ、ネットワークセキュリティおよびウェブブラウザセキュリティの侵害を通じてそのような個人情報を盗むことが容易になり、個人情報の収集と再販において収益性の高い市場が生じた。このような個人情報はまた、個人の身元を追跡または盗難する、または犯罪行為の計画を補助するために犯罪者によって悪用されうる。
【0004】
データ保護に関して、今日ほとんどの組織が直面している主な課題は、個人の識別情報が組織のデータセンター全体のどこに位置するかを理解することである。この問題に対処しようとするレガシーデータ保護およびデータ損失防止(「DLP」)ソリューションは多数あるが、このようなアプリケーションは通常、正規表現に基づく分類アルゴリズムを採用する。残念ながら、このようなソリューションは、特定の組織の顧客に固有の個人情報を検索するように最適化されておらず、データ主体の身元を特定できず、文脈上の個人情報を見つけることができない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
組織のさまざまなデータシステム全体に保存されている機密データを識別および分類できるデータ保護および顧客プライバシー管理システムが依然として必要とされる。そのようなシステムが、データリスクおよび顧客プライバシーの管理を容易にするために、属性によってインデックスされた個人情報の組織化インベントリ(inventory)を提供できれば有益である。
【課題を解決するための手段】
【0006】
前述の目的および他の目的に従って、例示的なプライバシー管理プラットフォームが本細書に記載されている。そのようなプラットフォームは、システム、コンピュータで実装された方法、装置、および/またはソフトウェアアプリケーションで具体化することができる。説明されているプラットフォームは、プライバシー情報を監視および分析するためのプライバシーおよびデータ保護クライアントアプリケーションを提供しうる。例えば、プラットフォームは、組織のさまざまなシステムやアプリケーションをスキャンして、そのようなデータソースに保存されうる任意の個人情報、そのような情報の保存に関連する任意の関連リスク、および/またはそのような情報に関する任意の使用活動をユーザーに可視化するように構成できる。
【0007】
プライバシー管理プラットフォームの実施形態は、格納されたおよび/または学習されたルールに基づいて、任意の数のローカルおよび/またはクラウドベースのシステムに亘って個人情報を検索することができる。潜在的な個人情報が見つかると、プラットフォームは、偽陽性の個人情報の結果を除外し、相関プロセス中に個人情報レコードを作成することで真陽性の結果を特定のデータ主体に相関させることができる。したがって、プラットフォームは、組織によって使用されうるそのような個人情報のインベントリを提供し、プライバシー影響評価を実施しうる。
【0008】
特定の実施形態では、プラットフォームは、機械学習分類器と組み合わせてサンプルスキャン技術を使用し、検索時間およびシステム上の負担を大幅に削減しながら、スキャンされたデータソース内に特定のタイプまたは属性の個人情報が格納されている場所の統計的に有効なサーベイ(survey)を提供しうる。1つのそのような実施形態において、システムは、機械学習モデルを使用して、個人情報属性値を含むことが知られている1つまたは複数のIDデータソースのフィールド(すなわち、列)をスキャンされたデータソースのフィールドと比較することができる。より具体的には、機械学習モデルは、スキャンされたデータソース内の各スキャンされたフィールドに対する1つまたは複数のIDデータソース内の各属性フィールドのフィールド間の比較に関連する様々な特徴を分析して、IDデータソース内の所定の属性フィールドが、スキャンされたデータソース内の所定のスキャンされたフィールドと同じタイプの個人情報を含むか否かを特定しうる。
【0009】
一実施形態では、機械学習モデルは、各属性フィールドとスキャンされたフィールドとの比較について信頼性レベルを特定し、信頼性レベルに基づいて、属性フィールドの属性に関連付けられているものとしてスキャンされたフィールドを分類することができる。本明細書で論じられるように、信頼性レベルは、以下の1つまたは複数と関連付けられた値、メタデータおよび/または要約統計量に関するさまざまの特徴に基づいて特定される:所定のスキャンされたフィールド、スキャンされたフィールドに関連する個人情報の調査結果、およびIDデータソースの少なくとも1つの属性フィールド。一般に、プライバシー管理プラットフォームは、そのような属性フィールドおよびスキャンされたフィールドについて機械学習モデルによって特定された信頼性レベルが最小信頼性閾値以上である場合に、IDデータソースの特定の属性フィールドに対応する個人情報属性を、特定のスキャンされたフィールドから作成された個人情報レコードに関連付けるように適合させることができる。
【0010】
例示的なプライバシープラットフォームは、ユーザーが発見された個人情報を調査および分析して、プライバシーリスクおよび/または様々な規制に対する使用コンプライアンスおよび/または顧客の同意を決定することを可能にするクライアントアプリケーションを提供する。このようなアプリケーションは、データの機密性、常駐性、セキュリティおよび/またはアクセスなどであるがこれらに限定されない要因に基づいて、組織がデータのリスクを理解および比較するのに役立ちうる。例えば、プラットフォームには次のものが含まれうる:静的および/または動的なリスク測定を提供するデータリスクスコアリング機能;米国国立標準技術研究所(「NIST」)などのグループのモジュラーリスクモデル;エンタープライズカスタマイズ性;および/または緩和および割当てワークフローについての運用上の推奨事項。
【0011】
特定の実施形態では、プラットフォームは、自然言語クエリ機能を含んでもよく、追加的または代替的にレポート(例えば、監査人および法定代理人と共有できるレポート)を提供してもよい。したがって、プラットフォームは、例えば個人情報属性の特定の値を含むクエリを受信する;スキャンされたデータソースおよびそのようなスキャンされたデータソース内で属性に関連付けられた個人情報が配置されているフィールドを決定する(例えば、スキャンされたデータソースに関連付けられた、以前に作成、スキャン、および分類された個人情報レコードに基づいて);および、スキャンされたデータソースのフィールドを検索して、要求された個人情報をすばやく見つける、ように適合させることができる。
【0012】
一実施形態では、1つまたは複数のデータソースに格納されている個人情報を見つけて分類するコンピュータ実装の方法が提供される。本発明の方法は、コンピュータによって、第1の属性値に関連付けられた第1の属性フィールドおよび第2の属性値に関連付けられた第2の属性フィールドを含む識別データソースを受信する工程、および、コンピュータによって、第1のスキャン値に関連付けられた第1のスキャンされたフィールドを含むスキャンされたデータソースを受信する工程を含みうる。本発明の方法はまた、コンピュータによって、第1の属性値を第1のスキャン値と比較することによって決定される第1のセットの個人情報結果、および、第2の属性値を第1のスキャン値と比較することによって決定される第2のセットの個人情報結果を含む、複数の個人情報結果を決定する工程を含みうる。特定の実施形態では、複数の個人情報レコードは、複数の個人情報結果の一部またはすべてから作成することができ、複数の個人情報レコードは、第1のセットの個人情報結果の一部またはすべてから作成された第1のセットの個人情報レコード、および、第2のセットの個人情報結果の一部またはすべてから作成された第2のセットの個人情報レコードを含む。本発明の方法は、以下の工程をさらに含んでもよい:コンピュータによって、第1のスキャンされたフィールドおよび第1の属性フィールドについて第1の信頼性レベルを計算する工程であって、以下の複数に基づいて計算する工程:第1のスキャン値のカウント、第1のセットの個人情報発見のカウント、第1のセットの個人情報レコードのカウント、および、第1のセットの個人情報レコードのカウントと第2のセットの個人情報レコードのカウントとの合計;コンピュータによって、第1のスキャンされたフィールドおよび第2の属性フィールドについて第2の信頼性レベルを計算する工程であって、以下の複数に基づいて計算する工程:第1のスキャン値のカウント、第2のセットの個人情報結果のカウント、第2のセットの個人情報レコードのカウント、および、第1のセットの個人情報レコードのカウントと第2のセットの個人情報レコードのカウントとの合計;第1の信頼性レベルが最小信頼性閾値以上であり、かつ、第2の信頼性レベルが最小信頼性閾値未満であることを決定すると、コンピュータによって、第2の属性フィールドではなく第1の属性フィールドを、レポートにおける第1のスキャンされたフィールドと関連付ける工程;および、レポートをユーザーデバイスに提供する工程。
【0013】
特定の場合、スキャンされたデータソースは、第2のスキャン値に関連付けられた第2のスキャンされたフィールドをさらに含む。追加的または代替的に、複数の個人情報結果はさらに、第1の属性値を第2のスキャン値と比較することによって決定された第3のセットの個人情報結果;および第2の属性値を第2のスキャン値と比較することによって決定された第4のセットの個人情報結果を含み得る。場合によっては、複数の個人情報レコードはさらに、第3のセットの個人情報結果の一部またはすべてから作成された第3のセットの個人情報レコード、および第4のセットの個人情報レコードの一部またはすべてから作成された第4のセットの個人情報レコードを含む。個人情報の調査結果。そのような場合、本発明の方法はまた、以下の工程を含みうる:コンピュータによって、第2のスキャンされたフィールドおよび第1の属性フィールドについて第3の信頼性レベルを計算する工程であって、以下の複数に基づいて計算する工程:第2のスキャン値のカウント、第3のセットの個人情報発見のカウント、第3のセットの個人情報レコードのカウント、および、第3のセットの個人情報レコードのカウントと第4のセットの個人情報レコードのカウントとの合計;コンピュータによって、第2のスキャンされたフィールドおよび第2の属性フィールドについて第4の信頼性レベルを計算する工程であって、以下の複数に基づいて計算する工程:第2のスキャン値のカウント、第4のセットの個人情報結果のカウント、第4のセットの個人情報レコードのカウント、および、第3のセットの個人情報レコードのカウントと第4のセットの個人情報レコードのカウントとの合計;および、第4の信頼性レベルが最小信頼性閾値以上であり、かつ、第3の信頼性レベルが最小信頼性閾値未満であることを決定すると、第1の属性フィールドではなく第2の属性フィールドを、レポートにおける第2のスキャンされたフィールドと関連付ける工程。
【0014】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】識別グラフについて初期データ主体プロファイルを作成する例示的な方法を示す図
【
図2】データ主体プロファイルを拡張するために個人情報について一次および二次データソースを検索する例示的な方法を示す図
【
図3】個人情報結果をデータ主体プロファイルに相関させる例示的な方法を示す図
【
図4】機械学習モデルを使用して、個人情報属性に従ってスキャンされたデータソース中でフィールドを分類する例示的なサンプルスキャン方法を示す図
【
図5B】例示的なスキャンされたデータソース503を示す図
【
図6】スキャンされたデータソース中でフィールドを分類するために使用される機械学習モデルの例示的なアウトプットを示す図
【
図7】例示的なスキャン結果ヒートマップスクリーンを示す図
【
図8】スキャンされたデータソース中でフィールドを分類するために機械学習モデルをトレーニングする例示的な方法を示す図
【
図9】メタデータに従ってラベル化および整理された例示的なトレーニングデータを示す図
【
図10】ランダムフォレストおよびロジスティック回帰機械学習モデルのパフォーマンスメトリックスを示すグラフを示す図
【
図11】ある実施形態に従った、例示的な信頼性閾値調整スクリーンを示す図
【
図12】ある実施形態に従った、例示的な個人情報スキャン結果のレビューおよび修正スクリーンを示す図
【
図14】例示的なデータフローダイアグラムを示す図
【発明を実施するための形態】
【0016】
組織が顧客データを発見、分析、監視、および/または保護し、顧客のプライバシー管理を可能にするために、様々なシステム、コンピュータ実装方法、装置、およびソフトウェアアプリケーションが開示されている。説明される実施形態は、そのようなデータソースに保存された任意の機密の顧客データ、そのようなデータの保存に関連するリスク、および/またはそのような情報に関連する任意の使用アクティビティへの可視性を提供するために、組織の様々なシステムおよびアプリケーションをスキャンするように適合され得る。
【0017】
説明される実施形態は、以下を含むがそれに限定されない、従来のデータセキュリティシステムによって対処されない多くの問題を解決し得る:どのデータが「個人情報」を構成するかを組織が決定するのを支援する;組織のシステム全体の中での個人情報の場所に関連する情報を含む組織化されたインベントリを提供する(例えば、属性および/またはデータ主体によるインデックス付け);組織がデータ主体の居住地を決定し、それによって準拠する必要のある規制を理解することを可能とする;違反またはプライバシー違反が発生した場合に影響を受ける顧客を組織が判断することを可能とする;および/または組織が個人情報の削除に関する顧客の要求に応じることを可能とする機能を提供する。
【0018】
例示的な実施形態は、以下を行うように構成されてもよい:どのデータが個人情報を構成するかを決定する;個人情報を監視する必要がある1つまたは複数のデータ主体を決定する;任意の数のデータソース(例えば、オンプレミスおよび/またはリモートシステムおよびアプリケーション)全体に保存されている個人情報を発見する;発見された個人情報を分析および処理して、属性によりインデックス付けされた個人情報インベントリを作成する;および/またはプライバシーおよびデータセキュリティのリスクの監視および視覚化を提供する。
【0019】
本明細書で使用される場合、「個人情報」という用語は、単独で、または他の情報と共に使用して、単一の個人を識別、接触、または特定するため、および/または文脈において個人を識別するために使用できる、任意の情報またはデータを称しうる。このような情報には、個人の身元を区別または追跡するために使用できる情報が含まれてもよい。個人情報の種類または「属性」の具体的で非限定的な例には、以下が含まれるがこれに限定されない:名前、自宅の住所、職場の住所、電子メールアドレス、国民識別番号、社会保障番号、パスポート番号、運転免許証番号、年齢、性別、人種、通学した学校名、職場名、学年、給与、職位、犯罪歴、ウェブクッキー、車両登録プレート番号、顔の画像または特徴、指紋、手書き、IPアドレス、クレジットカード番号、デジタルID、ログインネーム、スクリーン名、ニックネーム、ユーザーハンドル、電話番号、生年月日、出身地、および/またはその他の遺伝情報。
【0020】
モデムの再識別アルゴリズムの多様性およびパワーのために、定義された個人情報がないことは、残りのデータが個人を識別しないことを意味しない。一部の属性はそれ自体で一意に識別できるが、任意の属性を他の属性と組み合わせて識別できる。したがって、個人情報には、医療情報、個人健康情報(「PHI」)、教育情報、財務情報、ペイメントカードインダストリ(「PCI」)データ、雇用情報および/または他のいわゆる「準識別子」または「疑似識別子」など、個人にリンクまたはリンク可能な任意の他の情報が含まれうる。個人情報には、ヨーロッパでは「個人データ」、あるいは、米国では「個人を特定できる情報」、「PII」または「機密性の高い個人情報」(およびそれらの他のバリエーション)として定義される情報が含まれうる。
【0021】
図1を参照すると、IDグラフいついての初期データ主体プロファイルを作成する例示的な方法が示されている。オプションの第1のステップ101で、1つまたは複数のデータ主体の初期個人情報をシステムが受信して、1つまたは複数のデータ主体プロファイルを作成することができる。このような個人情報(および生じるプロファイル)は、ユーザー、顧客、従業員、または組織によって個人情報が保存されている任意の他の個人(ここではまとめて「データ主体」と称する)に対応しうる。さらに、初期個人情報は、特定の環境で個人情報がどのように見えるかをシステムが学習するための学習セットとして使用することができる。初期個人情報は、ユーザーによって(例えば、クライアントアプリケーションを介して)システムに手動で入力され得る、および/またはシステムにアップロードされるファイルに含まれてもよい。
【0022】
一実施形態では、システムは、1つまたは複数の個人情報ルール102を受信および/または決定することができる。このようなルールは、システムがさまざまなデータソースに保存されている個人情報を見つけるために必要なロジックを提供する。個人情報ルールには、一意の識別子、表示名、特定の個人情報属性(例えば、社会保障番号や電話番号)に関連付けられる居住国の属性、および/またはそのような属性の組合せにマッピングする定義ルールが含まれうる。個人情報ルールはさらに、任意の発見された個人情報属性の近くの場所内での検索を規定する1つまたは複数の近接ルールを含み得る。例えば、郵便番号などの個人情報属性が社会保障番号の近くに表示される場合(例えば、同じデータベース行内または特定の文字数内)、システムはこの近接検索結果を、指定された社会保障番号に関連付けられたデータ主体に相関させることができる。
【0023】
特定の実施形態では、システムは、多くの個人情報ルールで事前構成され得る。例えば、システムは、例えば、どちらもここに参照することによりその全体が本明細書に組み込まれるNIST Special Publication 800-122(US)および/またはGeneral Data Protection Regulation(EU)によって与えられる定義のような、1つまたは複数の組織によって指定された個人情報の定義に対応する個人情報属性ルールを使用して実施できる。追加的または代替的に、システムは、ユーザーが個人情報ルールを手動で作成および/または更新することを可能にするように適合され得る。
【0024】
以下で詳細に説明するように、システムは、既存の個人情報ルールを自動的に更新するおよび/または新しいルールを決定するように構成され得る。例示的なシステムは、そのようなルールを反復的および/または継続的に作成および更新するために、機械学習または同様の技術を実装することができる。
【0025】
ステップ103において、システムは、データ主体の個人情報を保持することが知られているIDデータソースに向けられ得る。例示的なIDデータソースは、構造化データベース、ユーザーディレクトリ(例えば、ライトウェイトディレクトリアクセスプロトコル(「LDAP」)ディレクトリ)、顧客関係管理(「CRM」)システム、人的資源システム、eコマースシステム、および/またはその他を含みうるがこれらに限定されない。
【0026】
システムは、データソースの名前、場所、タイプ、および/またはアクセス情報など、1つまたは複数のIDデータソースに関連付けられたデータソース情報を決定および/または受信することができる。他の実施形態では、システムは、ユーザーからデータソース情報を受信することができる。例えば、ユーザーは、IDデータソース情報をクライアントアプリケーションに手動で入力してもよい、および/またはそのような情報を含むファイルをアップロードしてもよい。別の実施形態では、システムは、任意の対応するデータソース情報と共に、1つまたは複数のIDデータソースを自動的に発見するように構成され得る。システムは、NMAP、CACTI、NAGIOS、ICINGA、およびその他のようなオープンソースツールを使用して、データソースの検出や監視を実行できる。
【0027】
ステップ104で、システムは、1つまたは複数のIDデータソースに接続し、格納された個人情報ルールに基づいて、そこに含まれる個人情報の検索を実行することができる。潜在的な個人情報がIDデータソースで発見されると、システムは、各発見の値および/またはそれに関連する関連属性のようなメタデータを含むそのような情報、例えば、個人情報が見つかったデータソース、データソース内で個人情報が位置する場所(例えば、コレクション、テーブル、フィールド、列など)、および/または個人情報が見つかった日付の、個人情報発見リストを作成することができる。
【0028】
システムが、IDデータソースを検索し、個人情報調査結果ファイルを作成すると、システムは、各結果をデータ主体105に相関させようと試みることができる。相関プロセスは、例えば、OPENDLP、WEKA、ORGANE、RAPIDMINERなどのオープンソースツールを利用してもよい。例示的な相関プロセスは、
図3を参照して以下で詳細に説明される。
【0029】
ステップ106で、システムは、個人情報がIDデータソース内に含まれると決定された任意の数のデータ主体いついて初期IDグラフデータ主体プロファイルを作成する。概して、システムはデータ主体ごとに一意のプロファイルを作成できる。またシステムは、個人情報レコードの作成を介して、任意の相関する個人情報(および任意の対応するメタデータ)を関連するデータ主体プロファイルに関連付けることができる。総称して、データ主体プロファイルは、本明細書では「IDグラフ」と呼ばれてもよく、そのようなIDグラフは、システムによって格納され動的に更新され得る。
【0030】
一実施形態では、IDグラフにおけるデータ主体に関連付けられた個人情報レコードは、プライバシー上の理由により個人情報自体ではなく、個人情報属性(例えば、検索に使用される安全なハッシュ)へのポインタを格納することができる。したがって、システムは、個人情報が見つかった元の場所から個人情報を抽出しない場合がある。
【0031】
IDグラフによって、企業は、保存されている個人情報が属する一意のデータ主体を識別できる。これは、以下を含む多くの理由で重要である:ユーザー情報へのアクセス権を決定する;データ主体の居住性に基づいてユーザーおよびデータの居住性を理解する;違反の場合に影響を受けるデータ主体を特定することにより違反を抑制する;および/または個人情報をデータ主体と関連付けて検証することにより偽陽性を減らす。
【0032】
ステップ107で、システムは、データ主体プロファイルに追加された各個人情報属性について属性識別可能性スコアを計算することができる。このスコアは、単一の個人情報属性および/または属性の組合せの一意性を反映し、特定のデータ主体を識別するためにこれらの属性および組合せをどの程度強力に使用できるかを判断する。システムは、属性の識別可能性スコアを格納してもよく、それを対応する個人情報レコードに関連付けてもよい。
【0033】
図2を参照すると、IDグラフのデータ主体プロファイルを作成および更新する例示的な方法が示されている。システムが初期データ主体プロファイルで構成されると(例えば、
図1に関して上記で説明したように)、システムは、データベース、ファイル共有およびデータ保護ソリューションなどの様々な一次および/または二次データソースの個人情報検索を実行することによってそのようなプロファイルを更新することができる。したがって、IDグラフは、様々なシステムおよびアプリケーションに亘って組織によって格納されたすべての個人情報の個人情報レコードを含むインベントリを含むように構築されてもよく、各レコードは、以下のような情報を含み得るが、これらに限定されない:1つまたは複数の格納された属性、各属性の場所、アプリケーションインベントリ、ユーザーストアインベントリ、および/またはすべての個人情報属性およびアプリケーションメタデータ(タグ)。
【0034】
第1のステップ201で、システムは、1つまたは複数の一次および/または二次データソースに対応するデータソース情報を受信および/または決定し、これらのデータソース内の個人情報の場所を検索、収集、および/または決定しうる。例示的な一次データソースには、例えば、構造化データベース(例えば、SQL)、非構造化ファイル共有、半構造化ビッグデータおよびNoSQLリポジトリ(例えば、Apache Hadoop、RDBおよびMongoDB)、LDAPリポジトリ、CRMシステム(例えば、SALESFORCE)、コラボレーションツール、クラウドストレージシステム、テキストファイル、および/またはその他の内部または外部アプリケーションが含まれうる。また、例示的な二次データソースには、例えば、DLP、データ保護および/またはデータガバナンスソリューション(例えば、SYMANTEC、MCAFEE、VARONIS、IMPERVA、およびIBM GUARDIUM)、および/または、例えばセキュリティ情報およびイベント管理(「SIEM」)ソリューション(例えば、SPLUNK、HPARCSIGHT、IBM QRADARなど)であるがこれらに限定されないもののログソースが含まれうる。
【0035】
システムは、そのようなデータソースに対応する任意のデータソース情報とともに、一次および/または二次データソースを自動的に発見するように構成され得る。追加的または代替的に、システムは、手動入力またはファイルアップロードを介してユーザーからデータソース情報を受信することができる。
【0036】
ステップ202で、システムは、発見された一次または二次データソースが個人情報について検索されていないかどうか、および/またはそのようなデータソースが最後の個人情報検索以降に更新されているかどうかを決定する。そのようなデータソースが存在しない場合、プロセスは210で終了することができる。それ以外の場合、プロセスは続行され、システムは203で個人情報について一次または二次データソースを検索する。
【0037】
概して、システムは、以前にデータ主体プロファイルに関連付けられた(すなわち、ユーザーによってシステムに追加された、および/またはIDデータソースで発見された)個人情報属性について一次および二次データソースを検索することができる。システムはまた、個人情報ルールに基づいて、追加の個人情報について一次および二次データソースを検索することができる。
【0038】
ステップ204で、検索203中に個人情報が見つからない場合、プロセスは、ステップ202に戻って、追加の一次または二次データソースが検索に利用可能であるかどうかを決定することができる。
【0039】
あるいは、そうでなければ、個人情報属性が発見された場合、そのような属性(すなわち、「元の属性」)の近接性を205で検索して、元の属性の近くに位置する追加の個人情報属性(すなわち、「近接属性」)を識別することができる。そのような近接検索は、格納された個人情報近接ルールおよび/または個人情報ルールのうちの1つまたは複数に基づくことができる。また、近接検索を使用して、システムに現在存在するかどうかにかかわらず(すなわち、元のIDソースの一部である必要はない)、任意の数のデータ主体について近接属性を見つけることができる。
【0040】
上で説明したように、潜在的な個人情報がデータソースで検出されると、システムはその結果を関連するメタデータとともに個人情報の結果ファイルに追加しうる。したがって、個人情報調査結果ファイルは、任意の数の個人情報調査結果およびそのような調査結果に関連するメタデータを含み得る。
【0041】
ステップ206で、システムは、調査結果ファイル内の各個人情報調査結果をデータ主体に相関させようと試みる。
図3に関して以下で詳細に論じられるように、システムは、データ主体に首尾よく関連付けられた個人情報発見ごとに個人情報レコードを作成することができる。システムは、個人情報レコードを作成する前に、特定の調査結果を追加的または代替的に除外する場合がある(例えば、誤検知、複数のデータ主体に相関する調査結果、属性識別可能性スコアが低い調査結果など)。
【0042】
一実施形態では、システムは、相関の結果(例えば、個人情報レコード)を使用して、207でIDグラフ内のデータ主体プロファイルに格納された情報を作成、更新、削除、および/または置換することができる。例えば、個人情報レコードが既存のデータ主体に対応する場合、その記録はそのデータ主体のプロファイルに追加される場合がある。別の例として、個人情報レコードが新しいデータ主体(すなわち、IDデータソースに含まれていなかったデータ主体)に関連付けられている場合、データ主体に対して新しいプロファイルが作成され、個人情報レコードは新しいプロファイルに追加されうる。
【0043】
ステップ208で、システムは、作成された個人情報レコードに関連付けられた1つまたは複数の個人情報属性の属性識別可能性スコアを決定することができる。上記のように、システムは、属性の識別可能性スコアを格納し、それを対応する個人情報レコードに関連付けることができる。
【0044】
ステップ209で、システムは、個人情報ルールおよび/または近接ルールを含む個人情報ルールを更新することができる。属性または属性の組合せの識別可能性スコアを決定した後、高度に識別可能な属性または属性の組み合わせを再度繰り返し使用して、新しい検索を再帰的に開始できる。これにより、システムは、同じIDに関連付けられている追加のデータセット(すなわち、IDグラフ内のノード)を検出できる。
【0045】
別の例として、上記のステップで発見された新しいデータ主体に関連する個人情報を検索するようにルールを更新することができる。さらに別の例として、近接検索205が近接属性の発見をもたらす場合、近接属性の位置情報を使用して、1つまたは複数の個人情報近接ルールを更新して、後続の検索がこの追加情報を利用できるようにすることができる。概して、位置情報は、近接属性の絶対位置および/または元の属性に対する近接属性の相対位置を含むことができるが、これらに限定されない。追加的または代替的に、近接属性のタイプに関連する情報を使用して、1つまたは複数の属性定義ルールを更新し、その後の検索でこのタイプの個人情報を検索できるようにすることができる。
【0046】
一実施形態では、システムは、機械学習技術を使用して、個人情報ルールを繰り返し更新することができる。以下の機械学習アルゴリズムの1つまたは複数を使用してもよい:クラスタリング、ロジスティック回帰、決定木学習、ベイジアンネットワーク、ランダムフォレスト、サポートベクターマシン(「SVM」)、人工ニューラルネットワークおよび任意の他の機械学習アルゴリズム。
【0047】
さまざまな機械学習アルゴリズムが、構造化または非構造化、テキスト、ドキュメント、地理的位置、画像など、さまざまなタイプのデータに対して異なる結果を提供することが理解されるであろう。さらに、保存されるデータの種類や量は、組織によって大きく異なる場合がある。したがって、分散(variance)を決定するために、単一の組織内および/または複数の組織に亘るさまざまなデータソースで異なる機械学習アルゴリズムによって得られた結果を継続的に比較することが好ましいかもしれない。そのために、システムは、トレーニングデータをテストし、複数のアルゴリズムを検証して、特定のデータセットおよび/または組織に最も効果的なものを選択することができる。
【0048】
上記のアルゴリズムの1つまたは複数は、組織固有のトレーニングデータを使用する各組織によって個別にトレーニングされて、個人情報属性ルールを含む1つまたは複数の組織固有の個人情報分類関数を構築することができる。次いで、その組織の要件または好みに基づいて、効果的な個人情報分類機能を特定の組織に使用することができる。
【0049】
機械学習を使用して、近接検索中に見つかった近接属性を分類することもできる。そのような分類は、近接属性が、元の属性が相関しているデータ主体に一意に相関しているかどうかに基づいてもよい(すなわち、近接属性の識別可能性スコアに基づく)。
【0050】
一実施形態では、システムは、半教師あり能動学習プロセスを採用することができる。例えば、システムは、個人情報を識別するための機械学習アルゴリズムを訓練するため(例えば、個人情報ルールを作成および/または更新するため)のトレーニングデータとして以下の情報を使用することができる:元の属性の近接内に位置する第1の近接属性(例えば、データベース内の列またはテキストファイル内の段落のコレクション);元の属性;および/または元の属性が関連付けられているデータ主体に関連する任意の他の情報。次いで、トレーニングされたアルゴリズムを使用して、元の属性の近接内にある追加の各近接属性を、元の属性が関連付けられているデータ主体に相関させる必要があるかどうかを判断することができる。
【0051】
いずれにせよ、ステップ209で個人情報ルールが更新されると、システムはステップ202に戻って、接続された一次または二次データソースが個人情報を検索されていないか、および/または前回の個人情報検索以降にそのようなデータソースが更新されているかどうかを決定することができる。そのようなデータソースが存在しない場合、210でプロセスは終了する。それ以外の場合、プロセスは継続し、203で次の一次または二次データソースで個人情報を検索する。
【0052】
図3を参照すると、データソースで見出された潜在的な個人情報(すなわち、個人情報結果)をデータ主体プロファイルに相関させる例示的な方法が示されている。ステップ310で、システムは、相関のために1つまたは複数の個人情報結果を受け取る。そのような発見は、サンプル検索(以下の
図4を参照)または初期データソース、一次データソースおよび/または二次データソースの完全検索を介して決定され得る。
【0053】
特定の実施形態では、データソースのスキャンに関連するすべての個人情報結果は、個人情報結果ファイルまたはコレクションに格納され得る。調査結果のそれぞれは、以下の1つまたは複数を含む検出された潜在的な個人情報に関連付けられたメタデータを含みうる:属性タイプ、値(プライバシー上の理由でハッシュされる場合がある)、スキャンID、個人情報が保存される(例えば、名前、タイプ、場所、アクセス資格情報など)データソースに対応するデータソース情報、および/または個人情報が保存されるデータソース内の場所(例えば、コレクション、テーブル、フィールド、列など)に対応する位置情報。
【0054】
ステップ302で、システムは、相関させるために利用可能な個人情報結果の数を選択する。相関はバルクプロセスとして処理され、システムは利用可能なすべての調査結果を選択するか、ユーザーが構成可能な変数またはシステムが決定した変数に基づいてそのような調査結果のサブセットを選択する。
【0055】
ステップ303で、システムは、個人情報として分類されるべきではないデータ値に関連する個人情報結果を除外することができる。一実施形態では、システムは、それ自体が少数のディスティンクト(distinct)値のみを含むデータソース内の所与のフィールド(すなわち、カラム)内で何度も発生する値に関連する結果を除外することができる。
【0056】
例えば、システムは、以下の場合に、データソースフィールドで見つかった特定の値に関連付けられた結果を除外してもよい:(1)フィールド内のディスティンクト値の数を、フィールド内で見つかった個人情報の結果の総数で割った値が、事前に決定された構成可能な最大値(例えば0.001)より大きい;および/または(2)フィールド内の値の出現回数を、フィールド内で検出された個人情報の調査結果の総数で割った値が、事前に決定された構成可能な最大値(例えば0.1)より大きい。
【0057】
別の例として、システムは、以下の場合に、データソースフィールドで見つかった特定の値に関連する結果を除外してもよい:(1)フィールド内の特定の値の出現の標準偏差(「stdDevPop」)が、フィールド内のすべての異なる値の平均出現回数より大きい;(2)フィールド内のディスティンクト値の最大出現数をstdDevPopで割った値が、事前に定義された構成可能な最大数(例えば10)より大きい;および/または(3)フィールド内の指定された値の出現回数が、フィールド内のすべてのディスティンクト値の平均出現回数にstdDevPopの2倍を加えた数よりも大きい。
【0058】
上記のフィルタリング技術は単なる例示であり、システムは、偽陽性の発見のために個人情報レコードが作成されないことを保証するために、任意の数のフィルタリングプロセスを採用できることが理解されよう。
【0059】
ステップ304で、システムは、残った個人情報結果(すなわち、ステップ303で除外されなかった発見)のそれぞれを、IDグラフのデータ主体に相関させようとする。一実施形態では、システムは、例えば、結果の値を識別グラフに格納された個人情報の値のそれぞれ(すなわち、保存された各データ主体プロファイルに関連付けられた各値)と比較することによって、所与の結果の値がマッピングされる各データ主体プロファイルおよびそのような一致の総数を決定する。したがって、個人情報結果は、結果に関連する値がデータ主体プロファイルに関連する属性値と一致する場合、データ主体プロファイルに「相関する」と言うことができることが理解されよう。
【0060】
一実施形態では、システムは、ステップ304において、任意のデータ主体の属性にマッピングすることができない個人情報結果を破棄することができる。
【0061】
ステップ305で、システムは、ステップ304でデータ主体に相関する個人情報結果に対して追加のフィルタリングを実行することができる。例えば、システムは、複数のデータ主体プロファイルに相関するおよび/または特定の属性識別可能性基準を満たさないデータ主体属性にのみマッピングする結果をフィルタリングすることができる。
【0062】
一実施形態では、システムは、結果に関連する属性の属性識別可能性スコアに基づいて、個人情報結果を除外することができる。概して、属性の識別可能性スコアは、単一の個人情報属性および/または属性の組合せの一意性を反映する。このスコアは、例えば、属性に関連付けられた値が相関し得るデータ主体の平均数を計算することによって、所与の属性について決定され得る。一例として、可能な限り最高の属性識別可能性スコア1を、平均して単一のデータ主体に相関する値を含む属性に割り当てることができる。別の例として、0.5の属性識別可能性スコアが、平均して2つのデータ主体に相関する値を含む属性に割り当てられ得る。
【0063】
したがって、システムは、「低い」属性識別可能性スコアを有する属性のみに関連する個人情報結果を除外することができる。例えば、システムは、最小識別可能性閾値(例えば、約0.5)未満の属性識別可能性スコアを有する属性のみに関連する結果を除外することができる。そのような閾値は、ユーザーによって手動で入力されてもよい、および/またはシステムによって自動的に決定されてもよい。
【0064】
さらに、システムは、所定の最大数を超えるデータ主体プロファイルに相関する結果を除外することができる。一実施形態では、所定の最大数のデータ主体は、ユーザーによって手動でシステムに入力され得る。別の実施形態では、システムは、以下によってそのような結果を自動的に除外することができる:(1)最も低い有効な属性識別可能性スコア(すなわち、属性識別可能性閾値を超えるスコア)を有する属性を選択し、(2)選択した属性のディスティンクト値に平均の標準偏差を加えたものに関連付けられたデータ主体の平均数の合計を計算する。
【0065】
オプションのステップ306で、システムは、代替の相関プロセスを介して、ステップ305で除外された個人情報結果のそれぞれをデータ主体プロファイルに相関させようと試みることができる。
【0066】
一実施形態では、システムは、所与の結果に関連するデータソースから以前に作成され、かつ、結果が発見された場所の近接内(例えば、RDB内の同じテーブル列内またはMongoDBの同じドキュメント内)の格納された個人情報レコードを検索することができる。システムはまた、近くで見つかった個人情報に関連付けられているすべてのデータ主体プロファイルを識別することができる。
【0067】
次に、システムは、調査結果の値を以下と比較することにより、特定の調査結果をデータ主体に関連付けようとすることができる:(1)検索された個人情報レコードに含まれる各値、および(2)識別されたデータ主体のそれぞれに関連付けられた各値。システムは、ステップ306で、任意のデータ主体プロファイルにマッピングすることができない任意の個人情報結果を破棄することができる。
【0068】
オプションのステップ307で、システムは、エンリッチメント(enrichment)相関プロセスを採用することができる。一実施形態では、エンリッチメント相関プロセスは、個人情報結果が構造化されたデータソースに関連付けられている場合にのみ実行することができる。さらに、エンリッチメント相関は、(1)個人情報レコードを有するデータソース内の近接数(例えば、RDBのレコード、MongoDB内のドキュメント)と(2)データソース内の近接の総数との比率(「比率(Proportion)」)が所定の最小値(例えば、0.99)より大きい場合にのみ実行できる。一実施形態では、最小値は、1-enrich_identify_rangeに等しくてもよい。
【0069】
第1に、システムは、以下を有するフィールドに対応するデータソース内の最良のフィールド(すなわち、カラム)を決定し得る:(1)最も個人的な情報の記録、および(2)データ主体と個人情報結果との間の最も高い比率。以下のデータソース内のすべてのフィールドから最良のフィールドを選択できる:(1)対応する個人情報レコードの数がカラム内のレコードの総数の半分を超えている;(2)対応する各個人情報の調査結果に一致するデータ主体の平均数が1+enrich_identify_range未満である;および(3)対応する各近接度に一致するデータ主体の平均数が1+enrich_identify_range未満である。
【0070】
次に、システムは、対応する個人情報レコードの数がレコードの総数の半分未満であるデータソース内の各フィールド(「エンリッチメントフィールド」)を識別することができる。エンリッチメントフィールドを識別すると、システムは、各エンリッチメントフィールドに格納された値のそれぞれに対応するエンリッチメント結果を作成することができる。
【0071】
一実施形態では、システムは、任意のエンリッチメント結果を、同じディスティンクト値およびフィールドに関連する個人情報結果と組み合わせることができる。システムはまた、一意性または識別可能性に基づいてエンリッチメント結果を除外することもできる。例えば、システムは、(1)対応するエンリッチメントフィールド内のディスティンクト値の数と(2)エンリッチメントフィールド内のレコードの総数との比率が最小値(例えば、属性の識別可能性閾値)未満であるエンリッチメント結果を除外することができる。
【0072】
ステップ308で、システムは、データ主体に相関する残りの個人情報結果および/またはエンリッチメント結果のそれぞれについて、個人情報レコードを作成することができる。残りの個人情報の調査結果には、以下が含まれうる:(1)ステップ304でデータ主体に相関し、ステップ305で除外されなかった調査結果;および(2)ステップ306でデータ主体に相関する結果。各個人情報レコードは、対応する個人情報発見に格納されたデータのいずれか、および/または上記の1つまたは複数のステップでシステムによって決定された情報またはメタデータのいずれかを含み得ることが理解されよう。
【0073】
一実施形態では、システムは、フィールド名が最良のフィールドに等しい近接性における個人情報レコードとエンリッチメント結果を結合し、一致する個人情報レコードからデータ主体の詳細を決定することによって、残りのエンリッチメント結果のそれぞれについて個人情報レコードを作成することができる。
【0074】
ステップ309で、システムは、個人情報レコードが作成されていない(または除外されていない)追加の個人情報結果があるかどうかを決定する。そのような結果が1つまたは複数存在する場合、プロセスはステップ302に戻って追加の結果を選択することができる。あるいは、プロセスは310で終了してもよい。
【0075】
いくつかの実施形態では、システムは、処理ステップ303から307のいずれかまたはすべてをスキップしてもよいことが理解されよう。例えば、システムは、ステップ302で選択された個人情報結果のそれぞれについて、307で個人情報レコードを単に作成することができる。これは、好ましくは、個人情報の調査結果がIDデータソースに関連付けられている場合に使用される。
【0076】
図4を参照すると、例示的なサンプルスキャン方法が示されている。特定の実施形態では、システムは、1つまたは複数のサンプリング方法を使用して、1つまたは複数のデータソースに存在するデータの構成可能なサブセット(またはサンプル)をスキャンすることができる。このようなサンプルスキャン技術は、個人情報が保存されている場所の統計的に有効な調査を提供すると同時に、検索時間とシステムへの負担を大幅に削減する。
【0077】
通常の検索には次の手順が含まれるため、個人情報のデータソースのスキャンには時間がかかる場合がある:特定のデータソース(例えば、テーブル、コレクション、および/またはファイル)に存在するすべてのデータをスキャンし、データをスキャナにフェッチし、次いで、データが個人情報を構成するかどうかを(例えば、個人情報インデックスに対してデータをチェックすることによって)判断する。さらに、特定の検索では、検索されたデータソースに個人情報が密集している場合(例えば、各データベース列における個人情報のいくつかのフィールド)、多数の個人情報の結果が見つかる可能性がある。このような状況は、検索によって最終的に少数の新しい個人情報レコードしか作成されない場合でも、各個人情報の検索結果をフェッチして相互に関連付ける必要があるため、スキャンプロセスの速度に悪影響を与える可能性がある。
【0078】
一部のシナリオでは、システム内のすべてのデータ主体に属するすべての個人情報の完全な説明を決定するために、すべてのデータソースを包括的に検索する必要があるが、これは必ずしも必要ではない。概して、例示的なサンプルスキャン技術は、組織全体の1つまたは複数のデータソースに格納されたデータのサブセットを検索することができる。このような手法は、フェッチおよび処理する必要のあるデータの量と検索の実行に必要な合計時間を削減するために、適度に小さいサンプルサイズを維持しながら、個人情報を見つける可能性を最大化するように設計される。
【0079】
図4に示されるように、第1のステップ401において、システムは、サンプルスキャンが実行されるデータソース(すなわち、スキャンされたデータソース)に対応するデータソース情報を受信する。上で論じたように、データソース情報は、ユーザから受信されてもよい、および/または発見プロセスを介してシステムによって自動的に決定されてもよい。
【0080】
ステップ402で、システムは、スキャンされたデータソースに接続して、その中の任意の数の列に含まれるデータを検索する。一実施形態では、検索する列の数は、所定の値(例えば、1,000,000)である。別の実施形態では、数は、データベース内の列の総数に基づいてシステムによって計算され得る。場合によっては、システムがランダムに列を選択することがある。
【0081】
オプションのステップ403で、システムは、検索するために取得された列のサブセットを選択することができる。一実施形態では、サブセットは、取得された列の総数の約1%~約25%(例えば、取得された列の総数の約1%、2%、3%、4%、5%、6%、7%、8%、9%、10%、11%、12%、13%、14%、15%、16%、17%、18%、19%、20%、21%、22%、23%、24%または約25%)を含み得る。一実施形態では、取得された列のサブセットの選択は、ランダムな選択を含み得る。別の実施形態では、サブセットは、選択された各列の後に、所望の数の取得された列が選択されるまで、所定の、計算された、または可変数の列をスキップすることによって選択され得る。追加的または代替的に、スキップおよび/または制限フラグを含む任意の数のクエリを使用して、データソースの検索されたレコード内で選択するレコードを決定することができる。ステップ403は任意であることが理解されよう。いくつかの実施形態では、システムは、ステップ402で選択されたすべての列を利用することができる。
【0082】
ステップ404で、システムは、
図2に関して上記で説明したように、選択された列を検索し、個人情報結果を作成する。次に、ステップ405で、システムは、個人情報結果に対して相関プロセスを実行して、個人情報がスキャンされたデータソースに存在するかどうかを決定する。
図3に関して上で論じたように、相関プロセスは、偽陽性の結果を除外し、システムに格納された既知の属性値に一致する真陽性の結果のそれぞれについて個人情報レコードを作成する結果となる。
【0083】
ステップ406で、システムは、データ主体の個人情報を保持することが知られているIDデータソースに対応するデータソース情報を受信し、IDデータソースに接続して、そこに含まれるデータを受信する。スキャンされたデータソース情報と同様に、IDデータソース情報は、ユーザーから受信されてもよい、および/または発見プロセスを介してシステムによって自動的に決定されてもよい。
【0084】
ステップ407で、システムは、機械学習モデルを使用して、IDデータソースの各フィールド(各「属性フィールド」)がスキャンされたデータソースの各フィールド(各「スキャンされたフィールド」)にどれだけ密接に対応するかを示す信頼性レベルを決定する。以下で詳細に説明するように、決定された信頼性レベルのそれぞれは、概して、所与の属性フィールドが所与のスキャンされたフィールドにどれだけ密接にマッピング、一致、または対応するかに関係する。したがって、決定された信頼性レベルは、1つまたは複数の個人情報結果の識別可能性、相関、ディスティンクト値、および/またはディスティンクト分類に関連する多くの特徴を考慮に入れる発見的計算に基づくことができる。また、信頼性レベルは、属性フィールドとスキャンされたフィールドとの間の一致に関するある程度の確実性を表すように、最小(精度が低いことを示す)から最大(精度が高いことを示す)の範囲でありうる。
【0085】
図4に示される分類プロセスの議論を容易にするために、
図5A-5Bに示される例示的なIDデータソース502および例示的なスキャンされたデータソース503が参照される。図示されるように、IDデータソース502は、任意の数の属性フィールド(すなわち、カラム540、550、560、および570)を有する1つまたは複数のテーブルを含んでもよく、各属性フィールドは、フィールド名、個人情報属性、および複数の値(すなわち、列)と関連付けられる。例えば、属性フィールド540は、「ユーザーID」のフィールド名、ユーザーID属性、およびユーザーID値(例えば、値541)を含む複数の列に関連付けられている。別の例として、属性フィールド550は、「フルネーム」のフィールド名、名前属性、および名前値(例えば、値551)を含む複数の列に関連付けられている。
【0086】
IDデータソース502の単一の列内の値は、通常、単一のエンティティに関連付けられることが理解されよう。例えば、値541、551、561、および571は、それぞれ単一のエンティティ(すなわち、「John Smith」の名前属性値551に関連付けられたデータ主体)に関連付けられている。したがって、IDデータソース502は、複数のエンティティのそれぞれについて複数の個人情報属性値を格納することができる。
【0087】
スキャンされたデータソース503は、同様に、任意の数のスキャンされたフィールド(すなわち、カラム510、520、および530)を有する1つまたは複数のテーブルを含み得、各フィールドは、フィールド名および1つまたは複数の値(すなわち、列)に関連付けられる。例えば、スキャンされたフィールド510は、「ユーザー」のフィールド名および複数の値(例えば、値541)に関連付けられている。別の例として、スキャンされたフィールド520は、「プロモ(Promo)」のフィールド名および複数の値(例えば、値521)に関連付けられている。そして、IDデータソーステーブル502と同様に、スキャンされたデータソーステーブル503の所与の列内のすべての値は、通常、特定のエンティティに関連付けられるであろう。
【0088】
システムは、識別データソース502内の各属性フィールドが特定の個人情報属性に関連付けられた値を含むことを「知っている」が、スキャンされたデータソース503内のスキャンされたフィールドのそれぞれに含まれる値の性質は不明であることが理解されよう。したがって、システムは、機械学習モデルを使用して、属性フィールドおよびスキャンされたフィールドに関連する様々な特徴を分析して、所与の属性フィールドおよび所与のスキャンされたフィールドの両方が同じ個人情報属性(例えば、ユーザーID、名前、言語、社会保障番号、電話番号など)に関連する値を含むかどうかを予測し得る。
【0089】
概して、機械学習モデルで使用される機能は、以下の1つまたは複数に関してもよい:スキャンされたデータソースの選択された列に含まれる値、スキャンされたデータソースのフィールドに関連付けられたメタデータ、IDデータソースに含まれる値、IDデータソースのフィールドに関連付けられているメタデータ、スキャンされたデータソースとIDデータソースから決定された個人情報の調査結果に関連付けられている情報、および/またはそのような調査結果から作成された個人情報レコードに関連付けられている情報。例示的な機能について、以下で詳細に説明する。
【0090】
一実施形態では、機械学習モデルは、フィールド値カウントに関連する1つまたは複数の特徴を利用することができる。フィールド値カウントは、現在スキャンされているフィールドの値の総数(つまり、列の総数)として定義されてもよい。例えば、スキャンされたデータソース503内のスキャンされたフィールド510は、9つの列を含み、したがって、9のフィールド値カウントに関連付けられている。別の例として、スキャンされたフィールド520はまた、9つの合計値を含むので、9のフィールド値カウントに関連付けられる。
【0091】
別の実施形態では、機械学習モデルは、フィールド結果カウントに関連する1つまたは複数の特徴を使用することができる。フィールド結果の数は、現在スキャンされているフィールド内の現在の属性フィールドの個人情報調査結果の数として定義できる。例えば、属性フィールド540とスキャンされたフィールド510のフィールド結果カウントは7であり、これは、フィールドに次の結果が含まれているためである:値541と542は値512に一致し、値543は値513に一致し、値544は値514に一致し、値545は値515に一致し、値546は値516に一致し、値547は値517に一致し、値548は値518に一致するからである。別の例として、属性フィールド550およびスキャンされたフィールド510のフィールド結果カウントは4に等しく、これは、フィールドが、値556と値511、値556と値516、値557と値511、および値557と値516との間の結果を含むからである。
【0092】
属性フィールドの値がスキャンされたフィールドの値と一致するときに、結果が決定され得ることが理解されよう。システムは、そのような一致を決定するために様々な基準を利用することができる。例えば、システムは、属性フィールド値がスキャンされたフィールド値と正確に一致することを要求する場合がある。別の例として、システムは、属性フィールド値がスキャンされたフィールド値の部分文字列(substring)のみと一致することを要求する場合がある。
【0093】
一実施形態では、システムは、値が一致するかどうかを決定する前に、値をクリーンアップ、正規化、および/または標準化するために任意の数の処理ステップを実行することができる。例えば、システムは、それらが一致するかどうかを決定する前に、値(例えば、スペース、ピリオド、ダッシュ、括弧など)から英数字以外の文字を削除することができる。別の例として、システムは、テキストフォーマットを変更し(例えば、テキストを大文字または小文字に変換する、下付き文字または上付き文字を変換するなど)、数字を四捨五入する、および/または値をある単位から別の単位に変換することができる。
【0094】
他の実施形態では、システムは、自然言語処理および/または様々な文字列類似性アルゴリズムを利用して、属性フィールド値とスキャンされたフィールド値との間の一致を決定することができる。そのような場合、例えば、属性フィールド値およびスキャンされたフィールド値について計算された類似性スコアが最小閾値以上である場合、システムは一致を決定することができる。
【0095】
一実施形態では、機械学習モデルは、フィールド固有の結果カウントに関連する1つまたは複数の特徴を使用することができる。フィールドの一意の調査結果の数は、現在スキャンされているフィールドの現在の属性フィールドの個人情報の調査結果に関連付けられている一意の値の数として定義できる。例えば、スキャンされたフィールドは2つの固有の値(例えば、値521および値522)のみを含むので、属性フィールド570およびスキャンされたフィールド520のフィールド固有の結果カウントは2である。そして、別の例として、属性フィールド570およびスキャンされたフィールド530のフィールド固有の結果カウントは3に等しい。
【0096】
別の実施形態では、モデルは、属性レコードカウントに関連する1つまたは複数の特徴を使用することができる。属性レコードカウントは、現在の属性フィールドおよび現在のスキャンされたフィールドに対して決定された個人情報の調査結果から作成された個人情報レコードの数として定義できる。上で説明したように、システムは、相関プロセス中に除外されなかった調査結果の個人情報レコードのみを作成する場合がある。
【0097】
属性フィールド540およびスキャンされたフィールド510を例として取り上げると、システムは、上記で論じられた7つの個人情報結果を作成することができる。属性フィールド540に関連付けられたユーザーID属性が高度に識別可能である(すなわち、属性が最小値以上の属性識別可能性スコアに関連付けられている)と仮定すると、各結果は相関プロセスを通過し、個人情報レコードが値541~548について作成される可能性が高い。したがって、この場合、属性レコードカウントは8に等しくなる。
【0098】
別の例として、属性フィールド550およびスキャンされたフィールド510を取り上げる。上で説明したように、これらのフィールドのフィールド結果カウントは3に等しくなる。しかしながら、値556、557、および511はそれぞれ、データ入力エラーまたはその他のノイズを反映しているため、これらの値の3つの結果はすべて、通常、相関プロセス中に除外さる。その結果、システムはこれらの調査結果の個人情報レコードを作成せず、この場合、属性レコードカウントは0に等しくなる。
【0099】
一実施形態では、機械学習モデルは、ディスティンクトIDカウントに関連する1つまたは複数の特徴を使用することができる。個別IDカウントは、現在の属性フィールドとスキャンされたソースフィールドの一意の値の個人情報の結果から作成された個人情報レコードの数として定義できる。前者が個人情報レコードをカウントし、後者が個人情報結果をカウントすることを除いて、ディスティンクトIDカウントは、フィールド固有の結果カウントと同様であることが理解されよう。
【0100】
属性フィールド540および走査フィールド510を例として取り上げると、属性フィールド540の値541および542はいずれも、走査フィールド510の値512と一致する;また、属性フィールドの値543~548のそれぞれは、スキャンされたフィールドの1つの値(それぞれ513~518)と一致する。これらすべての調査結果に対して個人情報レコードが作成されると仮定すると、値541と542は同一であり、1回だけカウントされるため、ディスティンクトIDの数は7になる。
【0101】
さらに別の実施形態では、機械学習モデルは、フィールドレコードカウントに関連する1つまたは複数の機能を使用することができる。フィールドレコードカウントは、すべてのIDデータソースおよび現在スキャンされているフィールドのすべての属性フィールドに対して決定された個人情報の調査結果から作成された個人情報レコードの数として定義できる。
【0102】
一例として、フィールドレコードカウントは、IDデータソース502のすべての属性フィールド(例えば、540、550、560、570)およびスキャンされたデータソース503のスキャンされたフィールドの1つ(例えば、510)について決定され得る。この場合、レコードは次の一致に対して作成される:属性フィールド540の値541は、スキャンされたフィールド510の値512と一致する;属性フィールド540の値542は、スキャンされたフィールドの値512と一致する;属性フィールド540の値543は、スキャンされたフィールドの値513と一致する;属性フィールド540の値544は、スキャンされたフィールドの値514と一致する;属性フィールド540の値545は、スキャンされたフィールドの値515と一致する;属性フィールド540の値546は、スキャンされたフィールドの値516と一致する;属性フィールド540の値547は、スキャンされたフィールドの値517と一致する;および属性フィールド540の値548は、スキャンされたフィールドの値518と一致する。属性フィールド550の値556と557、および属性フィールド570の値579は、それぞれスキャンフィールド510の値511と516に一致するが、これらの一致に対しては、高度に識別可能ではなく高度に識別可能な属性に近接していないため、レコードは作成されない。したがって、識別データソース502のすべての属性フィールド(540、550、560、570)およびスキャンされたデータソース503のスキャンされたフィールド510のフィールドレコードカウントは、8に等しい。
【0103】
この機能は、属性レコードカウントとフィールドレコードカウントとの比率の計算に使用できることに留意すべきである(以下で説明する)。この比率の値が高いほど、特定の属性フィールドが特定のスキャンフィールドに対応しているという確実性が高いことを示し、したがって、属性フィールドに関連付けられている属性は、スキャンされたフィールドに関連付けられている可能性がある。一方、値が小さいほど、属性フィールドがソースフィールドに対応していないことを示している可能性がある;むしろ、IDデータソースの異なる属性フィールドは、スキャンされたフィールドによりよく一致する可能性がある。
【0104】
別の実施形態では、機械学習モデルは、最大属性レコードテーブルカウント(「MARTC」)に関連する1つまたは複数の機能を使用することができる。MARTCは、スキャンされたデータソーステーブル内の1つの属性フィールドとすべてのスキャンされたフィールドに対して決定された個人情報の調査結果から作成された個人情報レコードカウントとして定義できる。
【0105】
一例として、フィールドレコードカウントは、IDデータソース502の属性フィールド540およびスキャンされたデータソース503のすべてのスキャンされたフィールド(例えば、510、520、530)について決定され得る。この場合、属性フィールド540の値541および542は、スキャンされたフィールド510の値512と一致する;また、属性フィールド540の値543~548のそれぞれは、スキャンされたフィールド510の1つの値(513~518)と一致する。属性フィールド540の値のいずれも、スキャンされたフィールド520または530の値と一致しない。したがって、属性フィールド540およびスキャンされたすべてのフィールド(510、520、530)のMARTCは、8に等しい。
【0106】
一実施形態では、機械学習モデルは、スキャンされたソースごとの属性比に関連する1つまたは複数の機能を使用することができる。この機能は、属性レコード数をMARTCで割ることによって計算できる。例えば、属性フィールド540およびスキャンされたフィールド510についてのスキャンされたソースごとの属性比は、8/8=1である。
【0107】
スキャンされたソース機能ごとの属性比の値がより高いと、特定の属性フィールドが特定のスキャンされたフィールドに対応するという確実性がより高いことを示し、したがって、属性フィールドに関連付けられた属性もまたスキャンされたフィールドと関連付けられることが理解されよう。一方、値が小さい場合は、属性フィールドがソースフィールドに対応していないことを示している可能性がある;むしろ、IDデータソースの異なる属性フィールドが、スキャンされたフィールドによりよく一致する可能性がある。
【0108】
特定の実施形態では、機械学習モデルは、確実な一致の数、完全な一致の数、および/または確実かつ完全な一致の数に関連する様々な機能を使用することができる。概して、属性フィールドが高度に識別可能な属性に関連付けられている場合、属性フィールドの値とスキャンされたフィールドの値との一致は、「確実一致(sure match)」と称されうる。上記のように、属性フィールドの値がそれぞれ2つ以下の一意のデータ主体プロファイルと相関している場合、属性フィールドは高度に識別可能であると見なされうる。言い換えると、少なくとも0.5の属性識別可能性スコアに関連付けられた属性フィールドは高度に識別可能であると見なされ、そのような属性フィールド値に一致できるスキャンフィールドの値は確実に一致すると見なされる。
【0109】
例えば、IDデータソース502の属性フィールド540が少なくとも0.5の識別可能性スコアを有すると仮定する。このような場合、属性フィールド540の値(例えば、値543)とスキャンされたフィールドの値(例えば、スキャンされたフィールド510の値513)が一致するたびに、確実に一致すると見なされる(上述のように他の基準が満たされていると仮定して)。別の例として、属性フィールド550が0.5未満の識別可能性スコアを有すると仮定すると、属性フィールドの値とスキャンされたフィールドの値との一致は、確実な一致とは見なされない。
【0110】
「完全一致(full match)」とは、属性フィールド値がスキャンされたフィールド値と完全に一致するシナリオを示す。例えば、属性フィールド540の値543は、スキャンされたフィールド510の値513と正確に一致し、完全一致としてカウントされる。別の例として、属性フィールド550の値556および557は、スキャンされたフィールド510の値516と部分的にのみ一致し、完全一致としてカウントされない。
【0111】
「確実かつ完全一致(sure and full match)」とは、属性フィールド値がスキャンされたフィールド値と確実に一致し、完全に一致する場合を指す。上記の例では、スキャンされたフィールド510の値513は、属性フィールド540の値543と確実に一致し、完全に一致する。したがって、確実一致、完全一致、および確実完全一致としてカウントされます。しかしながら、属性フィールド570の値579は、スキャンされたフィールド520の値522と完全に一致するが、属性フィールド570は高度に識別可能であると見なされないので、これは確実な一致ではない;したがって、確実かつ完全一致とは見なされない。
【0112】
最後に、機械学習モデルは、名前の類似性に関連する1つ以上の機能を採用する場合がある。概して、名前の類似性とは、特定の属性フィールドの名前と特定のスキャンされたフィールドの名前の間の類似性の尺度を指す。システムは名前の類似性を決定するために任意の数のアルゴリズムを使用できるが、1つの好ましいアルゴリズムはレーベンシュタイン距離(「LD」)であり、これは、スキャンされたフィールド名を属性フィールド名に変換するため(またはその逆)に必要な削除、挿入、および/または置換の数に関連する。一例として、属性フィールド540(すなわち、文字列「ユーザーID」)およびスキャンされたフィールド510(すなわち、文字列「ユーザー」)のLDは、約0.7である。別の例として、属性フィールド570およびスキャンされたフィールド520のLDは1であり、両方のフィールドが「プロモーション」のフィールド名に関連付けられている。
【0113】
以下の表1は、属性フィールドとスキャンされたフィールドの信頼性レベルを決定するために機械学習モデルで使用できる、重要度に従ってランク付けされた予測機能のリストを示している。リストされた機能は例示的なものであり、プライバシー管理プラットフォームによって利用される様々な機械学習モデルは、追加のまたは代替の機能を使用できることが理解されよう。
【表1】
【0114】
システムは、信頼性レベルを決定するために1つまたは複数の機械学習アルゴリズムを採用できることが理解されよう。例示的なアルゴリズムには、ランダムフォレスト、クラスタリング、ロジスティック回帰、決定木学習、ベイジアンネットワーク、SVM、人工ニューラルネットワークなどが含まれるが、これらに限定されない。これらのアルゴリズムの1つ以上は、組織固有のトレーニングデータを使用して、個人情報属性ルールを含む1つ以上の組織固有の個人情報分類関数を構築することにより、プラットフォームを使用する組織ごとに個別にトレーニングできる。
【0115】
さらに、さまざまな機械学習アルゴリズムが、さまざまなタイプのデータ(例えば、構造化または非構造化、テキスト、ドキュメント、地理的位置、画像など)に対してさまざまな結果を提供することが理解されよう。さらに、保存されるデータの種類や量は、組織によって大きく異なる場合がある。したがって、分散を決定するために、単一の組織内および/または複数の組織に亘るさまざまなデータソースで異なる機械学習アルゴリズムによって得られた結果を継続的に比較することが好ましいかもしれない。そのために、システムは、トレーニングデータをテストし、複数のアルゴリズムを検証して、特定のデータセットおよび/または組織に最も効果的なものを選択することができる。
【0116】
図4に示されるように、システムは、機械学習モデルによって計算された信頼性レベルのそれぞれが、ステップ408で最小信頼性閾値以上であるかどうかを決定する。信頼性レベルが閾値よりも大きい場合ごとに、システムは、信頼性レベルが決定された属性フィールドの個人情報属性を、対応するスキャンされたフィールドと関連付けることができる。
【0117】
ステップ409で、システムは、個人情報が属性(例えば、フィールドおよび/またはそのようなフィールド内の列)に従って確認および/または分類された、スキャンされたデータソース内の1つまたは複数の場所に対応する位置情報を含む、スキャンの結果を格納、送信、および/または表示する。一実施形態では、スキャン結果は、例えば以下のようであるがこれに限定されないメタデータを含んでもよい:スキャンされたテーブルに対応するスキャンされたデータソース情報、スキャンされた列の数、スキャンされた特定の列、検出された結果の数、そのような調査結果から作成された個人情報レコードの数、フィールド間の信頼性レベル、スキャンされたフィールド属性分類、および/またはその他の情報。
【0118】
スキャン結果は、ターゲットシステム内の個人情報事例の迅速な分析のための基礎を提供するため、任意の数の潜在的な使用事例に利用できる。一例として、スキャン結果は、データ主体の相関関係が不要なデータセンターの移行を行っている組織に強力な価値(および迅速なターンアラウンドタイム)を提供しうる。別の例として、初期サンプルスキャンを利用して、個人情報が格納されるデータソース内の1つまたは複数の場所(例えば、そのようなオブジェクト内のテーブル/コレクションおよび/または特定のカラム)を決定することができる。
【0119】
一実施形態では、サンプルスキャン結果を利用して、個人情報を保持すると決定されたデータソースおよび/またはデータソース内の場所に対してのみフルスキャンを実行することができる。例えば、属性に関連付けられた必要な個人情報を取得する要求を含む検索またはクエリを受信すると、システムは、要求された個人情報をすばやく見つけるために、どの個人情報レコードが属性に関連付けられているかを決定し、そのようなレコードに対応するスキャンされたデータソースフィールドを検索することができる。これにより、データソースが多数のテーブルで構成されているが、個人情報が含まれているテーブルはごくわずかである場合に、検索時間を大幅に短縮できる。サンプルスキャンを使用することにより、システムは「ジャストインタイム」方式でフルスキャンを実行できる(例えば、1人以上のユーザーがデータをシステムから削除するように要求した場合)。
【0120】
別の実施形態では、システムは、スキャン結果の一部またはすべてを、1つまたは複数のクライアントアプリケーションまたはアプリケーションプログラミングインターフェース(「API」)を介してユーザーに送信または表示することができる。例えば、システムは、個人情報の調査結果、そのような調査結果に関連するメタデータ、さまざまなフィールドに対して決定された信頼性レベル、および/または他のインジケータのそれぞれを表示し、システムが個人情報属性に従って各フィールドを分類したかどうかを示すことできる。エントリが個人情報として分類される場合、システムはさらに、エントリが関連付けられている1つまたは複数のデータ主体に対して作成された個人情報レコードを表示することができる。
【0121】
概して、開示された実施形態は、任意の数のスキャンされたフィールドの信頼性レベルを決定することができる。一実施形態では、システムは、すべてのIDデータソーステーブル内のすべての属性フィールドに亘って、スキャンされたデータソース内のすべてのスキャンされたフィールドの信頼性レベルを計算することができる。例えば、システムは、第1の属性フィールド(例えば、属性フィールド540)および第1のスキャンされたフィールド(例えば、スキャンされたフィールド510)の第1の信頼性レベルを決定することができる;次に、システムは、第2の属性フィールド(例えば、属性フィールド550)および第1のスキャンされたフィールドの第2の信頼性レベルを決定することができる;次に、システムは、第3の属性フィールド(例えば、属性フィールド560)および第1のスキャンされたフィールドの第3の信頼性レベルを決定することができる;次に、システムは、第4の属性フィールド(例えば、属性フィールド570)および第1のスキャンされたフィールドの第4の信頼性レベルを決定することができる。複数のIDデータソーステーブルが利用可能である場合(図示せず)、プロセスは、第1のスキャンされたフィールドおよび追加のIDデータソーステーブルの各属性フィールドの追加の信頼性レベルを計算し続けることができる。次いで、上記のプロセスは、スキャンされたデータソーステーブル503内の追加のスキャンされたフィールド(例えば、スキャンされたフィールド520、および次いでスキャンされたフィールド530)ごとに繰り返されてもよい。
【0122】
代替の実施形態では、システムは、最小閾値より大きい信頼性レベルが決定されるまで、特定のスキャンされたフィールドの信頼性レベルのみを計算することができる。例えば、システムは、第1の属性フィールド(例えば、属性フィールド540)および第1のスキャンされたフィールド(例えば、スキャンされたフィールド510)の第1の信頼性レベルを決定することができる;システムは、第1の信頼性レベルが最小閾値以上であると判断しうる;次に、第2の属性フィールド(例えば、属性フィールド550)および第1のスキャンされたフィールドの第2の信頼性レベルを計算するのではなく、システムは、第1の属性フィールドおよび第2のスキャンされたフィールド(例えば、スキャンされたフィールド520)の第2の信頼性レベルの計算に進んでもよい。次に、上記のプロセスは、スキャンされたデータソース内の追加のスキャンされたフィールド(例えば、スキャンされたフィールド530)ごとに繰り返されてもよい。また、追加のIDデータソースが利用可能な場合、スキャンされたフィールド(510、520、530)および追加のIDデータソースに含まれる属性フィールドのそれぞれについて、プロセス全体を繰り返すことができる。
【0123】
サンプルスキャン技術を使用して、IDデータソース、一次データソース、および/または二次データソースを含む構造化データソースを検索できることが理解されよう。サンプルスキャン技術を使用して、非構造化データソースを検索することもできることがさらに理解される。非構造化データソースの性質はさまざまであるため、サンプルスキャン技術では、ファイルのサンプルグループからファイル全体をスキャンする、および/または上記の方法に従ってすべてのファイルのサブセットをサンプリングすることを組み合わせて使用できる。
【0124】
図6を参照すると、属性フィールドをデータソースフィールドに一致させるための予測結果を示す例示的なテーブル600が示されている。図示されるように、出力テーブル600は、以下のラベルを含む:IDソースフィールド名605、スキャンされたソースフィールド名610、フィールド結果カウント615、フィールド固有結果カウント620、名前類似性625、信頼性レベル630、および分類または予測635。
【0125】
上で論じたように、機械学習モデルは、スキャンされたデータソースのフィールドを1つまたは複数のIDデータソースのフィールドと比較して信頼性レベル630を決定するためにいくつかの機能を使用する。図示の実施形態では、フィールド結果カウント615およびフィールド固有結果カウント620は、スキャンされたデータソースフィールドが個人情報を含むかどうかの強力な指標を提供するために示されている。例えば、フィールド固有結果カウント620が結果の数615に近い場合、スキャンされたソースフィールドは、個人情報を含む可能性が高い。
【0126】
他方、名前類似性625は、スキャンされたソースフィールドが、IDデータソース内の所与のフィールドに対応する個人情報を含むかどうかのより弱い指標であり得る。例えば、スキャンされたソースフィールド名610がIDソースフィールド名605と類似または同一である場合でさえ、スキャンされたソースフィールドに格納されたデータは必ずしも意味のある個人情報を保持するとは限らない。これは、例えば、列640に示され、IDソースフィールド名605は、スキャンされたソースフィールド名とほぼ同一であるが、モデルはわずかに0.0389の信頼性レベルを決定する。
【0127】
図6はさらに、機械学習モデルが、そのようなフィールドに対して決定された信頼性レベル630に基づいて、スキャンされたソースフィールドのそれぞれを分類し、ラベル付けすることができることを示している。例えば、システムは、対応する予測カラム635に「1」を含めることによって、スキャンされたソースフィールドが個人情報(および具体的には、所与の属性フィールドと同じタイプの個人情報)を含むことを示すことができる。また、システムは、そのようなカラムに「0」を含めることにより、個人情報がないことの分類を示す場合があります。以下で説明するように、そのような分類は、信頼性レベルが所定の最小閾値以上であるかどうかの決定に基づいている。
【0128】
図7に示されるように、一実施形態では、スキャン結果は、システムの1人または複数のユーザーによって(例えば、クライアントアプリケーションを介して)アクセス可能なヒートマップレポート700の形で提示され得る。図示されるように、ヒートマップは、スキャンされたデータソースで発見された個人情報結果705の数を、そのような結果のために決定された属性(例えば、郵便番号711、国712、およびフルネーム713)とともに表示し得る。ヒートマップは、データ721を、例えば、CSVファイルにエクスポートするためのオプションをさらに表示することができる。
【0129】
概して、ヒートマップ700は、ユーザーがトップレベルのデータソース(例えば、データセンターエンドポイントおよび/またはクラウドストレージシステム)からカラムレベルのビューにドリルダウンすることを可能にし得る。これは、サーバーのデータ機密性の評価が不可欠なクラウド移行や、潜在的な個人情報の汚染についてデータストアとマイクロサービスを監視する必要がある開発者環境など、複数の使用事例でメリットがある。
【0130】
図8を参照すると、個人情報分類機械学習モデルのトレーニングおよび使用を示す例示的なフローチャート800が示されている。上で説明したように、システムは、個人情報属性に従ってスキャンされたデータソースフィールドを分類するために、信頼性レベルを計算するために機械学習モデルを採用することができる。
【0131】
モデルが信頼性レベルを正確に決定する前に、モデルを構成してトレーニングする必要がある。一実施形態では、ユーザーは、所与の機械学習モデルを構成するために、システムに様々なモデル情報を入力することができる。例示的なモデル情報には、予測が行われるターゲット変数または結果の定義、モデルおよび/または初期パラメータ/重みによって使用されるトレーニングデータに関連する変形または活性化関数情報が含まれ得るが、これらに限定されない。
【0132】
概して、機械学習モデルの「学習」または「トレーニング」とは、モデルの全体的な予測パフォーマンスを向上させるためにモデルパラメータを変更または変更することを指す。モデルで使用される特定のパラメータ wを決定することは、データからマッピングを学習するというより一般的な問題の例である。入力と対応する出力の観測値のペアの例の数Nを含むトレーニングデータセットDが与えられた場合(つまり、D={(x1,y1)...、(xn、yn)})、目標は、トレーニングセットにおけるマッピングを近似し、重要なことに、トレーニングデータセットDのペアと同じ確率分布から抽出された見えないテストデータに一般化および/または外挿するマッピングを学習することである。
【0133】
このようなマッピングを学習するために、目的の出力がyの場合、入力xから出力y’を提供するマッピングの正の効用(目的関数の場合)または負の効用(損失関数の場合)を測定するために誤差関数が定義される。エラー関数が損失関数である場合、特定のトレーニングデータセットのエラーは、損失の合計(つまり、経験的損失)としてマッピングに対して定義できる。
【0134】
トレーニングデータへの過剰適合を防ぐ正規化項を含む関数、確率モデルの可能性または事後関数から導出された関数、大規模なデータセットのサブサンプリングに基づく関数、または対象の損失関数のその他の近似(いわゆる「代理損失関数」)を含む、多くのエラー関数を使用して、開示された機械学習モデルをトレーニングできる。概して、エラーはトレーニングデータ全体で計算されるか、または、トレーニングデータの小さなサブサンプル(またはミニバッチ)でエラーを計算することで概算されてもよい。
【0135】
トレーニングは通常、最適化アルゴリズムを使用して誤差関数Eを最適化することにより、いくつかの事例データDに基づいて行われる。例えば、誤差関数は、いくつかの初期パラメータ値wから開始し、パラメータwに関してE(w、D)の偏導関数を取り、これらの導関数によって与えられる方向にwを調整することによって最小化できる(例えば、最急降下最適化アルゴリズムに従って)。任意の数の最適化アルゴリズムを使用して、例えば、確率的勾配、可変適応ステップサイズ、二次導関数、それらの近似および/またはそれらの組合せの使用を含む、開示された機械学習モデルをトレーニングできることが理解されよう。
【0136】
図8に示されるように、810で、システムは、そこに含まれる入力データを取り込んで格納するために、1つまたは複数のデータソースに接続する。一実施形態では、システムは、スケジュールされたクエリまたはプロセスを実行して、データソースから入力データを引き出すことができる。他の実施形態では、システムは、許可されたユーザーが処理のために入力データをアップロードするためのエンドポイントを提供することができる。
【0137】
ステップ815で、システムは、一元化されたデータスキーマに従って取り込んだ入力データを処理して、初期データレコードを作成する。一実施形態では、システムは、入力データおよびそれに関連するトランザクションに関連する様々なメタデータ(例えば、許可されたユーザー、摂取時間、データソース情報、列数および/またはその他)を決定する。次に、システムは、そのようなメタデータを対応する初期データレコードに関連付けることができる。
【0138】
ステップ820で、システムは、様々な前処理ステップを実行して、初期データレコードを前処理されたデータレコードにクリーンアップ、検証、および/または正規化する。このような前処理は、標準化されたフォーマットまたはスキーマを持つデータテーブルを含む前処理されたデータレコードを作成するために必要になる場合がある。機械学習技術は、不完全および/または不正確なデータの一般的な問題を処理するために十分に整っているが、システムは、高品質の予測機能の作成を確実にするために前処理、クリーニング、および/または正則化を利用する場合がある。本明細書で使用される場合、「テーブル」という用語は、その最も広い意味で使用され、解釈または提示を容易にするフォーマットへのデータのグループ化を指す。このようなフォーマットには、コンピュータプログラム指示の実行から提供されるデータ、ソフトウェアアプリケーション、表、スプレッドシートなどが含まれるが、これらに限定されない。
【0139】
前処理中に、システムは、初期データレコードに対して任意の数のデータ操作を実行して、そこから前処理されたデータレコードを作成することができる。いくつかの例示的な操作には、以下が含まれうる:結合(2つ以上のデータベーステーブル間の接続を確立し、それによってテーブル間の関係を作成するために実行される操作)、フィルタ(特定の適格基準のための各入力または出力要求を検査し、次いでそれに応じて処理または転送するように設計されたプログラムまたはコードのセクション)、集計(情報が収集され、統計分析などの目的で要約形式で表現されるプロセス)、キャッシング(つまり、後で使用するために結果を保存する)、カウント、名前変更、検索、並べ替え、および/またはその他のテーブル操作。このような前処理により、例えば、前処理されたデータレコードに関連付けられたすべての情報が、標準化された命名ルール、ファイルシステムレイアウト、および構成変数で構成されることが保証される。
【0140】
一実施形態では、システムは、個人情報ルールに基づいて、入力データから個人情報結果を識別することができる。システムは、属性タイプ、フィールド名(例えば、個人情報が配置されているデータベース内のカラムの名前)、フィールド値(プライバシー上の理由でハッシュされる場合がある)、スキャンID、個人情報が保存されているデータソースに対応するデータソース情報(例えば、名前、タイプ、場所、アクセス資格など)、および/または個人情報が保存されているデータソース内の場所に対応する場所情報(テーブル、カラム、列、コレクションなど)であるがこれらに限定されない、そのような結果に関連するメタデータをさらに識別することができる。初期データレコードでそのような情報を識別すると、システムはこの情報を結果ファイルに集約、エンコード、および分類しうる。
【0141】
ステップ825で、様々な予測特徴が前処理された情報から作成される。そのような特徴は、機械学習モデルに提供されて、特徴の予測値(すなわち、特徴の重み)、信頼性レベル、および信頼性レベルに基づく分類を決定しうる。
【0142】
概して、実施形態によって使用される特徴のそれぞれは、ステップ820で生成された処理された情報の1つまたは複数の特定の態様に関連する個々の値を含む。また、各機能は、以下の関連する値に関連して実行される1つ以上の処理ステップを介して作成できる:例えば、ログスケーリングカウント変数、バケット変数、ビニング変数、および/または決定値(例えば、カウント、最大値、最小値、平均値、中央値、モード、標準偏差など)。
【0143】
特定の実施形態では、特徴は、(1)前処理された情報を任意の数の組み合わせ、集約、変換、正規化、および/または代入にかけ、(2)生じたデータの1つまたは複数の要約統計量を計算することによって作成され得る。例示的な要約統計量には、カウント、平均値、中央値、最頻値、および/または標準偏差が含まれ得るが、これらに限定されない。
【0144】
特徴は、値の比率、値の集計の比率、および/または値の集計の標準化の比率を計算することによって作成することもできる。さらに、そのような情報の比較に関連する様々な特徴が作成され得る。本明細書に記載される機械学習モデルを使用して、情報の重要な比率および組合せを決定し、高い予測性能を達成することができる。
【0145】
特徴は、使用されるモデリング技術に応じて(例えば、モデルをより安定させるために)様々な方法で標準化または変換され得ることが理解されよう。例えば、ロジスティック回帰モデルは極値に敏感である可能性があり、情報属性をバケットに集約し、属性を機能として個別に組み込むことが有用でありうる。しかしながら、ランダムフォレストモデルはパーティションベースであるため、極値に対する感度が低くなる。
【0146】
一実施形態では、モデルは、上記で論じた特徴のいくつかまたはすべてを使用することができる。したがって、そのような特徴のいくつかまたはすべてに関連するトレーニングデータが生成され、ステップ830で機械学習モデルをトレーニングするために使用され得る。
【0147】
図9は、いくつかの監視された使用事例(例えば、最低4000の使用事例)で機械学習モデルをトレーニングするために提供され得る例示的なラベル付けされた訓練データ900を示す。図示されるように、トレーニングデータ900の各列は、IDデータソース内の属性フィールドに対応する属性フィールド名901、信頼性レベルが決定されるスキャンされたデータソース内のスキャンされたフィールドに対応するスキャンされたフィールド名902、および、スキャンされたフィールドが属性フィールドと同じ属性に関連付けられた個人情報を含むものとして分類されるべきかどうかを示すラベル950を含みうる。
【0148】
トレーニングデータ900はさらに、例えば以下のようであるがこれに限定されない、機械学習モデルによって使用される機能に関連する値を含むことができる:フィールド値カウント905、フィールド結果カウント910、フィールド固有結果カウント915、属性レコードカウント920、フィールドレコードカウント925、MARTC930、確実な一致のカウント935、完全な一致のカウント940、および/または確実かつ完全な一致のカウント945。トレーニングデータは、本明細書で論じられる予測特徴のいずれかに関連する値を追加的または代替的に含み得ることが理解されよう。
【0149】
いずれにせよ、トレーニングデータ900は、ステップ835で機械学習モデルに提供されてもよく、その結果、そこに含まれる情報を分析して、信頼性レベルを決定し、個人情報属性に従ってスキャンされたフィールドを分類し得る。次に、システムは、ステップ835で、任意の数の追加のアクションを実行することができる。次に、システムは、ステップ835で、予測結果および対応する信頼性レベルをユーザーに表示することができる。
【0150】
特定の実施形態では、システムは、教師あり能動学習プロセスを使用して、個人情報を分類するために(例えば、個人情報ルールを作成および/または更新するために)機械学習モデルをトレーニングすることができる。図示されているように、ユーザーは、より正確な予測結果を生成するために、ユーザーのデータの特定のプロパティに合わせてアルゴリズムを調整することにより、モデルをトレーニングおよび再トレーニングできる。例えば、ステップ835でトレーニングデータに関連する予測結果を表示すると、ユーザーは、結果をレビューし、フィードバック840(例えば、1つまたは複数の結果を拒否する)を提供することができる。次に、ユーザーフィードバックは機械学習モデルに提供され、ユーザーが予測結果に満足していることを示すまでおよび/または所定の停止基準に達するまで、トレーニングプロセスが繰り返されてもよい。
【0151】
トレーニングが完了すると、モデルは(例えばJava(登録商標)やJavaScript(登録商標)に)変換され、プライバシー管理プラットフォームに組み込まれて、入力情報に基づいて個人情報の調査結果を分類できるようになる。つまり、845で、トレーニングされた機械学習モデルを使用して、所望にまたは必要に応じて、新しい入力データの信頼性レベルを決定できる。いくつかの実施形態では、モデルは、ファイル(バイナリまたはテキスト)にエクスポートされ、モジュール(例えば、JavaまたはJavaScriptモジュール)によってロードされ得る。ロードされたモデルは、予測結果を生成するために使用できる。
【0152】
したがって、新たに利用可能な情報を再取り込みして前処理し、次にMLモデルについて特徴を計算して、トレーニングデータで生成された相対的な特徴の重みに基づいて修正された信頼性レベルを計算することができる。一実施形態では、MLモデルは、新しいデータが利用可能になると(例えば、毎日、毎週、または毎月)、定期的に個々の信頼性レベルを再計算することができる。さらに、システムは、そのような信頼性レベルを、分類されたスキャンされたフィールドに対応する保存された個人情報レコードと関連付けることができる。
【0153】
一実施形態では、パフォーマンスメトリクスはまた、モデルによって決定された信頼性レベルおよび分類に基づいて計算され得る。有効で堅牢なモデルは、モデルが最初にトレーニングされたデータのホールドアウトサブサンプルから計算されたパフォーマンスメトリクスと同様のパフォーマンスメトリクスを追加データセットで期待することが理解される。
【0154】
実際に機械学習システムを使用するには、信頼性閾値を選択する必要がある。システムは、決定された信頼性レベルが閾値よりも高い場合にのみ、スキャンされたフィールドが属性フィールドに対応することを示す。閾値が増加するにつれて、偽陽性の数は減少するが、偽陰性の数は増加することが理解されよう。逆に、閾値を下げると、誤検知の数は増えるが、誤検知の数は減る。したがって、特定のモデルの最適な閾値を評価するには、偽陽性と偽陰性の結果の間の適切なトレードオフを決定する必要がある。
【0155】
この実施形態の文脈では、概して、偽陰性に対してより大きなペナルティがあり、偽陽性に対してより小さなペナルティが存在する。例として、情報を個人情報として識別できない(つまり、偽陰性)と、組織に罰金が科せられたり、顧客の信頼が失われたりする可能性がある。一方、情報を個人情報として誤って識別する(つまり、偽陽性)と、組織が情報を不必要に監視および保護することとなる。偽陰性のペナルティは偽陽性のペナルティよりも大きくなるが、データの監視と保護にはコストがかかり、バランスをとる必要があることが理解されよう。
【0156】
感度(すなわち、再現率または真陽性率)および適合率(すなわち、真陰性率)を含む、開示されたモデルの性能を評価するために、いくつかの測定基準を計算することができる。以下の式1に示すように、感度は受信者動作特性(「ROC」)曲線のY軸に対応し、各ポイントは予測が行われる閾値に対応する。感度は、ある予測閾値の個人情報属性として正しく識別された情報のパーセンテージを提供する。より高い再現率はより低い予測閾値に対応し、これは今度は、偽陽性よりも偽陰性を回避するという選好を反映することが理解されよう。
【数1】
【0157】
以下の式2に示すように、適合率はROC曲線のX軸に対応し、特定の閾値未満で正しく識別された実際の陰性の割合を測定する。
【数2】
【0158】
開示された機械学習モデルは、広範な特徴を有するデータソースフィールドに亘って個人情報を分類する際に非常に高いレベルのパフォーマンスを達成しうる。例えば、モデルは、約0.8~約0.98の再現率および/または適合率を達成するように構成され得る。特定の実施形態では、モデルは、少なくとも約0.8、少なくとも約0.85、少なくとも約0.9、または少なくとも約0.95の再現率および/または適合率を達成するように構成され得る。
【0159】
図10を参照すると、ランダムフォレストアルゴリズムおよびロジスティック回帰アルゴリズムを採用した機械学習モデルのパフォーマンスメトリックを示すグラフ1000が示されている。図示されているように、ランダムフォレスト機械学習モデルは約97%の再現率1001と約89%の適合率1011を達成し、ロジスティック回帰モデルは約82%の再現率1002と約68%の適合率1012を達成した。したがって、ランダムフォレストモデルは、分類においてロジスティック回帰モデルよりも優れていることがわかった。
【0160】
特定の理論に縛られることを望まないが、ランダムフォレスト機械学習モデルは、特徴間の複雑な関係を処理する能力が優れているため、他の機械学習モデルよりも優れていると考えられる(例えば、名前の類似性は、フィールドレコードカウント/フィールド結果カウントが高い場合にのみ重要である)。さらに、ランダムフォレストアルゴリズムは、それぞれデータ特徴の一部の断面を含むデータのサブセットのみでトレーニングされた多数の決定木からの結果の集約を可能にするため、他の分類器よりもパフォーマンスが高く、普及すると考えられる。
【0161】
図11を参照すると、例示的な信頼性レベル閾値調整画面1100が示されている。この画面1100は、ユーザーが、分類の目的で機械学習モデルによって採用される信頼性閾値を調整することを可能にし得る。
【0162】
図示されるように、ユーザーは、最小信頼性閾値(例えば、0)1111から最大信頼性閾値(例えば、1)1112までの範囲のバー1110を調整することができる。図示の実施形態では、画面1100はまた、低信頼性閾値1115の値が0から0.25の範囲であり、中信頼性閾値1120の値が0.25から0.65の範囲であり、高信頼性閾値1125の値が0.65から1.0の範囲であることをユーザーに通知し得る。
【0163】
信頼度の閾値を調整することにより、適合率と再現率のレベルが変更される。つまり、信頼度の閾値を上げると、再現率が高くなり、適合率が低下する。信頼度の閾値を下げると、再現率が低くなり、適合率が高くなる。いずれにせよ、所望の信頼性閾値を選択すると、ユーザーは、リセットオプション1130を選択してデフォルト設定に戻すか、キャンセルオプション1135を選択して画面を終了するか、または更新オプション1140を選択して信頼性閾値を更新することができる。
【0164】
図12を参照すると、例示的なスキャン結果のレビューおよび修正画面1200が示されている。図示されるように、この画面1200は、スキャンプロセスからの結果、ならびに様々なスキャンされたフィールドに対して決定された信頼性レベル1210を含む表1201を表示する。
【0165】
一実施形態では、ユーザーは、結果の1つまたは複数の列を選択し、各列の信頼性レベル1210を変更することができる。例えば、結果は、基礎となるデータ1220の信頼性レベルと対応するメタデータ1210の信頼性レベルとの間の不一致を示し得る(例えば、低対高)。
【0166】
そのような状況では、ユーザーは、更新信頼性レベルモーダルまたはポップアップ1215を介して、メタデータ1210に関連する信頼性レベルを変更することができる。そのような特徴1215は、ユーザーが更新された信頼性レベル1217を選択することを可能にするためのオプション(例えば、ドロップダウンメニュー)を提供し得る。更新された信頼性レベル1217を選択すると、システムはその選択を記憶し、次に機械学習モデルを自動的に再トレーニングして、調整された信頼性レベル1217に従って結果を予測することができる。したがって、モデルは、同様に見える観測値に、ユーザーが指定した調整済み信頼性レベル1217を割り当てる必要があることを学習しうる。
【0167】
図13を参照すると、例示的なシステムが示されている。図示されているように、システムは、パブリッククラウドからまたは組織のデータセンター内でデプロイできるマイクロサービスアーキテクチャを含みうる。このアーキテクチャにより、システムを単純な単一サーバーデプロイメントとして、または1つ以上のオンプレミスおよび/またはクラウドベースのアプリケーションを含む多層ハイブリッドクラウド環境としてデプロイできる。
【0168】
コアシステムコンポーネントは、スケーラビリティを促進し、柔軟な展開を可能にするために、コンテナ(例えばDOCKERコンテナ)にパッケージ化できるマイクロサービスとして設計できる。コンポーネントが分離され、それぞれが独自の分離された環境で実行できる場合、関連するマイクロサービスのインスタンスをさらに追加することでシステムを拡張できる。コンテナイメージは、管理、バージョンコントロール、コンテナハブからのダウンロード、または組織の環境でハブへのアクセスが許可されていない場合の圧縮ファイルからのロードが可能である。概して、各コンポーネントはREST API(または非同期ジョブの場合はメッセージキュー)を介して通信でき、ほとんどのサービスはステートレスである。複数のマイクロサービスが同じコンテナを共有することが可能であることが理解されよう。
【0169】
システムはコンテナサービスを利用しうるが、コア成果物はプレーンコード(JavaScript、Javaなど)で維持される場合がある。したがって、コンポーネントは、所望または必要な場合、さまざまな仮想マシンイメージにパッケージ化するまたはインストーラーによってインストールすることができる。
【0170】
図示されるように、システムは、クラウドまたはオンプレミスのいずれかにデプロイされ得る管理サーバーモジュール1310および通常はローカルに展開されるメインモジュール1330を含むがこれらに限定されない、任意の数のモジュールを含み得る。一実施形態では、メインモジュール1330は、共有データベースコンポーネント1340、オーケストレータコンポーネント1331、相関器コンポーネント1333、リスク分析およびルール評価コンポーネント1332、データソース発見コンポーネント1334、および多くのスキャナワーカーコンポーネント1350(例えば、IDスキャナ1351、Hadoopスキャナ1352、ファイルシェアスキャナ1353、および/またはサードパーティシステムスキャナ1354)などの多くのコンポーネントを含む。
【0171】
共有データベースコンポーネント1340は、データ主体テーブル1341、個人情報レコードテーブル1342、データソーステーブル1343、ルールテーブル1344、インシデントテーブル1345、アプリケーションテーブル1346および/またはアクティビティテーブル1347などの多くのデータベーステーブル(1341~1347)に情報を格納することができる。図示されるように、様々なコンポーネントおよび/またはマイクロサービスは、情報を格納および/または検索するために共有データベースコンポーネント1340にアクセスすることができる。
【0172】
特定の実施形態では、データソース発見コンポーネント1334を使用することができる。発見コンポーネントは、利用可能なデータソースを検索するように適合させることができる(例えば、ネットワーク発見を使用して)。見つかったデータソースに関連付けられたデータソース情報は、共有データベース1340内(例えば、データソーステーブル1343内)に格納され得る。
【0173】
図示されるように、システムは、IDデータソース1361、一次データソース1362、二次ソース1363、および/またはサードパーティデータソース1374などの様々なデータソース1360から個人情報結果をスキャンおよび検索するように適合された、多数の分散型オンプレミススキャナワーカーコンポーネント1350を含み得る。スキャナ1350のそれぞれは、共有データベース1340内(例えば、ルールテーブル1344内)に格納された1つまたは複数の個人情報ルールに基づいて、データソース内の個人情報を検索することができる。さらに、スキャナ1350のそれぞれは、検索された個人情報を共有データベース1340内(例えば、個人情報データベーステーブル1342内)に格納することができる。上記のように、例示的な個人情報の調査結果は、属性タイプ、属性値および/またはリンク、位置情報、および/またはスキャナIDを含み得る。スキャン結果には、ワークロードの計画を可能にするために(例えば、特定の属性について一部またはすべての結果を取得するために)、個人情報属性、データ主体の数などであるがこれに限定されないメタデータも含まれうる。
【0174】
一実施形態では、IDスキャナ1351は、IDグラフプロファイルがシステムによって維持されるべきデータ主体を決定するために、顧客のIDデータソース1361のうちの1つまたは複数に接続することができる。上記のように、そのようなIDシステム1361は、1つまたは複数の構造化データベース(例えば、SQL)、LDAPまたは他のディレクトリシステムおよび/またはCRMシステムなどのアプリケーションを含み得る。
【0175】
IDスキャナ1351は、IDシステムに接続し、関連する個人情報を検索し、その結果を共有データベースコンポーネント1340に格納することができる。特定の実施形態では、IDスキャナは、APIを公開して、スキャンの開始、スキャナステータスのチェック、および/またはスキャンの結果の検索を可能にすることができる。
【0176】
一次データソーススキャナ(Hadoopスキャナ1352など)は、前述のように、個人情報を検索するために組織のプライマリデータソース(Hadoopシステム1362など)に接続する。特定の実施形態では、一次データソーススキャナは、APIを公開して、スキャンを開始し、ステータスをチェックし、および/または個人情報に関連する結果を取得することができる。このスキャナは、入力ファイルの値に基づいてスキャンを実行するジョブを送信する場合がある。そして、そのようなスキャナは、APIを介して結果を共有データベース1340(例えば、個人情報テーブル1342)に格納することができる。
【0177】
二次データソーススキャナ(ファイル共有スキャナ1353など)は、前述のように、個人情報を検索するために組織の二次データソース(ファイル共有システム1363など)に接続する。特定の実施形態では、二次データソーススキャナは、APIを公開して、スキャンを開始し、ステータスをチェックし、および/または個人情報に関連する結果を取得することができる。このスキャナは、入力ファイルの値に基づいてスキャンを実行するジョブを送信しうる。そして、そのようなスキャナは、APIを介して結果を共有データベース1340内(例えば、個人情報テーブル1342内)に格納することができる。
【0178】
特定の実施形態では、システムは、データ保護システムなどのサードパーティシステムおよびアプリケーション1374と統合することができる。サードパーティのスキャナ1354を使用して、利用できる個人情報結果および/または個人情報の記録を検索することができる。追加的または代替的に、システムは、格納されたデータおよび/またはメタデータを照会するために、サードパーティシステムおよびアプリケーション1305用のAPIを公開することができる。
【0179】
概して、システムは、複数のタイプの複数のデータソースをスキャンするように構成することができる(例えば、Hadoopサーバー1、Hadoopサーバー2、ファイル共有1、ファイル共有2など)。一実施形態では、各タイプのデータソースは、そのタイプのデータソースをスキャンするように特別に適合されたスキャナ1350によってスキャンされ得る。他の実施形態では、単一のスキャナを使用して、複数のタイプのデータソースをスキャンすることができる。
【0180】
スキャナ1350のそれぞれは、ターゲットデータソースのネイティブ検索機能を活用してもよいおよび/またはデータソースの一部として実行してもよい。例えば、Hadoopスキャナ1351はMapRjobを実行できるが、SQLスキャナ(図示せず)は複数のクエリ(例えば、各テーブルの各カラムに1つなど)を実行できる。
【0181】
スケーラビリティは、特定のスキャナのインスタンスをさらに追加することで達成でき、各スキャナはスキャンジョブを取得し、他のスキャナと並行して実行できる。各スキャナインスタンスは、共有データベースをチェックして、実行する保留中のジョブ(「スキャン中タスク」)があるかどうかを確認できる。また、スキャン中タスクが存在する場合、適切なスキャナが自動的にトリガーされてスキャンが実行されうる。
【0182】
一部のスキャナでは、作業を別々のスキャンに分割することで並列処理を実現することが所望でありうる。例えば、各個人情報属性を異なるスキャンに分けてもよい(例えば、第1のスキャンで社会保障番号を検索し、第2のスキャンで氏名を検索してもよい)。別の例として、スキャンはアルファベット分割で区切ることができる(例えば、第1のスキャンでは文字a~fで始まるフルネームを検索し、第2のスキャンでは文字g~zで始まるフルネームを検索してもよい)。特定のスキャナの場合(例えば、Hadoopスキャナ1351)、システムのネイティブ並列処理が使用されてもよい。
【0183】
一実施形態では、システムは、ディスティンクトハンドラおよび/またはマイクロサービスを呼び出して調整するように適合されたオーケストレータコンポーネント1331を備えることができる。例えば、オーケストレータコンポーネントは、スキャナコンポーネント1350、相関器1333、リスクおよびルールコンポーネント1332、データソース1360、共有データベースコンポーネント1340、および/または管理サーバーコンポーネント1312と相互作用することができる。概して、オーケストレータコンポーネント1331は、データ主体の個人情報に関連する情報を受信し、スキャナ1350のために(例えば、入力ファイルを介して)情報を準備する。スキャナをトリガーし、完了したら、結果を取得して追加のメタデータとともに共有データベースコンポーネントに送信してもよい。
【0184】
オーケストレータコンポーネント1331は、以下のうちの1つまたは複数を担うことができる:(ユーザからの入力を介して)スキャナ1350に構成データを提供する;スキャン、更新などをスケジューリングする;相関ロジックを実行して、個人情報の調査結果と実際のIDを照合する(例えば、個人情報のルールに基づいて);インベントリに対して静的リスク分析を実行し、関連するリスクスコアを更新する;インベントリに対してルール評価を実行し、違反を生成する;および/またはビジネス情報処理を実行する(例えば、ダッシュボードに必要な要約、集計など)。特定の実施形態では、オーケストレータ1331は、メタデータ要約を生成する、および/またはそれを管理サーバコンポーネント1312にアップロードすることができる。オーケストレータコンポーネント1331はまた、リスク計算およびコンプライアンス決定などのさらなる処理を実行することができる。
【0185】
例示的なオーケストレータワークフローには、以下のステップが含まれ得る:(1)IDソースのスキャンを実行する;(2)終了時にチェックする;(3)相関器コンポーネント1333から、スキャンする属性値のリストを回収し、その値を含む入力ファイルを作成することによって、所与のスキャナ起動を準備する;(4)入力ファイルを使用して所定のスキャナ1350を実行する;(5)スキャナがスキャンを完了したことを判断する;および(6)相関コンポーネントを呼び出して、スキャン結果から個人情報レコードを作成する。いずれかのスキャナの特定の要件および/または制約に応じて、結果を共有データベース1340に直接書き込み、スキャンが完了したときにオーケストレータコンポーネントが結果を直接読み取ることができる。
【0186】
相関器コンポーネント1333を使用して、個人情報を定義し、個人情報結果を対応するデータ主体に相関させる。相関器コンポーネント1333は、以下のうちの1つまたは複数を担うことができる:(1)個人情報ルール(例えば、共有データベース1340のルールテーブル1344に格納された)を決定、検索、および/または更新する;(2)個人情報ルールに基づいて、スキャナ1350の入力として使用される検索可能な値のリストを提供する;(3)1つまたは複数のスキャナから個人情報結果を受け取ったときに一致するデータ主体を検索する;および(4)一致が見つかったときに、データ主体名、一意のデータ主体ID、属性名、データソース、および/またはデータリンクを含む個人情報レコードを作成し、それを共有データベース1340内(例えば、個人情報テーブル1342および/またはデータ主体テーブル1341内)に保存する。
【0187】
個人情報の調査結果、並びに、IDスキャナから受信した個人情報の属性には、機密値が含まれうることが理解されよう。可能な場合、システムはそのような属性のハッシュ値のみを保存できる。不可能な場合、システム内の他のすべての場所は実際の値ではなくデータへのポインタを保持/使用するだけでよいため、相関のために保持されているすべての一時データが完了後に消去されてもよい。
【0188】
特定の実施形態では、システムは、使用またはアクセスされるアプリケーション、アカウント、および/または個人情報レコードを含むがこれらに限定されない、データソース1360に関連する活動情報を提供するリスクおよびルールコンポーネント1332をさらに含み得る。このような活動データは、SIEM、デジタル資産管理(「DAM」)、および/またはクラウドアクセスセキュリティブローカー(「CASB」)製品を介して決定できる。そして、そのようなデータは、共有データベース内(例えば、活動テーブル1347内)に格納され得る。
【0189】
リスクおよびルールコンポーネント1332は、各個人情報レコードのリスクスコアを計算するようにさらに適合させることができる。上記のように、リスクは、追加的または代替的に、ユーザー、データ主体、個人情報属性、システム、および/または組織全体の1つ以上について計算される場合がある。そのような計算は、個人情報の属性および重みなどの静的パラメータ、および/または使用頻度およびアクセスのタイプ(例えば、読み取り/書き込みなど)などの動的パラメータに基づくことができる。
【0190】
リスクおよびルールコンポーネントは、事前に決定され、学習され、および/またはユーザーによって作成されたコンプライアンス規制/ルールに基づいて個人情報レコードをレビューするためにさらに使用できる(例えば、ドイツのユーザーはデータをドイツに保存する必要がある)。このコンポーネントは、ルール違反を報告する/およびまたは特定の場合にそのようなルール違反を許可するように設計されている場合がある。
【0191】
依然として
図13を参照すると、システムはさらに、クラウドベースの管理サーバーモジュール1310を備える。このモジュールは、管理データベースコンポーネント1320、管理サーバー1312、およびクライアントアプリケーションコンポーネント1311を含む多くのコンポーネントを含む。
【0192】
管理データベースコンポーネント1320は、メタデータ要約テーブル1321、テナント情報テーブル1322、ユーザテーブル1323、および/またはタスクテーブル1324などのいくつかのデータベーステーブル(1321~1324)に情報を格納することができる。図示されるように、様々なコンポーネントおよび/またはマイクロサービスは、情報を格納および/または検索するために管理データベースコンポーネント1320にアクセスすることができる。
【0193】
システムはさらに、任意の数のユーザに情報をグラフィック形式で表示するためのクライアントアプリケーション1311を備えることができる。クライアントアプリケーション1311は、クライアントデバイス1301のウェブブラウザ上で実行されるマルチテナントのウェブベースのアプリケーション(例えば、AngularJSを使用する)を含み得る。上記のように、クライアントアプリケーションでは、さまざまなテナントのオンプレミス要素をリモート管理することで、個人情報の管理と保護が可能になる場合がある。クライアントアプリケーション1311は、コンテナにパッケージ化され、リモートでホストされて、オンプレミスのプライベートクラウドアプリケーションとして単純な移植を提供できるようにするSaaS分散アプリケーションを備えることができる。
【0194】
特定の実施形態では、ユーザは、顧客登録活動を実行するためにクライアントアプリケーションにアクセスすることができる。例えば、クライアントアプリケーションでは、ユーザーが以下を行うことを可能にしうる:オンプレミス要素をダウンロードして登録する;個人情報発見タスクを設定および管理する;セルフサービス要素のソフトウェア更新を実行する;システムの状態を監視する;および/またはプラットフォームの上記のダッシュボードおよび機能のいずれかにアクセスする。
【0195】
図示されていないが、特定の実施形態では、分析および構成コンポーネントを使用して、クライアントアプリケーションの1つまたは複数のユーザインターフェース画面によって消費されるAPIのバックエンドを提供することができる。このコンポーネントは、メインモジュールによってポーリングされたアクティビティなどのアクティビティを追加することによって、メインモジュール1330に命令を送信することができる。
【0196】
図14を参照すると、例示的なデータフロー図が示されている。図示されるように、一実施形態では、クライアントデバイス1401上で(例えば、ブラウザまたはブラウザのようなアプリケーションを介して)実行されるクライアントアプリケーション1411は、一連のREST API1404を介して管理サーバ1412と通信することができる。この実施形態では、すべてのグラフィカルユーザインターフェース(「GUI」)コマンドは、ディスパッチャキュー1402を介してディスパッチされてもよく、オンプレミスコンポーネントからの発信呼び出しのみに依存するようにシステムコンポーネントによってポーリングされてもよい。これにより、ファイアウォールで開いている任意のポートが不要になる。
【0197】
スキャナ1450によって生成されたスキャンおよび/またはシステムの健全性に関するすべての統計およびメタデータは、応答性のあるユーザー体験を可能にするために、サーバー側のメタデータ要約キャッシュデータベース1421に格納され得る。一実施形態では、メタデータの要約のみを管理サーバー1412にアップロードして、個人情報がサーバーに到達しないようにすることができる。したがって、そのようなメタデータの要約は、クラウドにのみ保存することができる。
【0198】
本明細書に記載されている主題および機能的操作の実施形態は、以下の1つ以上で実装できる:デジタル電子回路;有形に具現化されたコンピュータソフトウェアまたはファームウェア;本明細書に開示されている構造およびそれらの機能等価物を含むコンピュータハードウェア;およびそれらの組合せ。そのような実施形態は、データ処理装置(すなわち、1つまたは複数のコンピュータプログラム)による実行のために、またはその動作を制御するために、有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。プログラム命令は、代替的または追加的に、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成される人工的に生成された伝搬信号(例えば、機械生成の電気、光、または電磁信号)に符号化され得る。そして、コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムまたはシリアルアクセスメモリ装置、およびそれらの組合せのうちの1つまたは複数であり得る。
【0199】
本明細書で使用される場合、「データ処理装置」という用語は、プログラム可能なプロセッサ、コンピュータ、および/または複数のプロセッサまたはコンピュータを含むがこれらに限定されない、データを処理するためのすべての種類の装置、デバイス、および機械を含む。例示的な装置は、フィールドプログラマブルゲートアレイ(「FPGA」)および/または特定用途向け集積回路(「ASIC」)などの特別な目的の論理回路を含み得る。ハードウェアに加えて、例示的な装置は、コンピュータプログラムの実行環境を作成するコード(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、およびそれらの組合せのうちの1つまたは複数を構成するコード)を含み得る。
【0200】
「コンピュータプログラム」という用語は、本明細書では、「プログラム」、「ソフトウェア」、「ソフトウェアアプリケーション」、「モジュール」、「ソフトウェアモジュール」、「スクリプト」、または単に「コード」として称されるあるいは説明されてもよい。コンピュータプログラムは、コンパイルまたは解釈された言語、宣言型または手続き型言語などを含む、あらゆる形式のプログラミング言語で記述でき、スタンドアロンプログラムとしてまたはモジュールとして、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットを含む任意の形態でデプロイできる。このようなソフトウェアは、ファイルシステム内のファイルに対応する場合がある。プログラムは、他のプログラムまたはデータを保持するファイルの一部に保存できる。例えば、プログラムには、以下に格納された1つまたは複数のスクリプトが含まれてもよい:マークアップ言語ドキュメント;問題のプログラム専用の単一ファイル;または複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)。コンピュータプログラムは、または、1つのサイトに配置されているか、複数のサイトに分散され通信ネットワークによって相互接続されている、1台のコンピュータまたは複数のコンピュータ上で展開および/または実行できる。
【0201】
本明細書に記載のプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行され、入力データを操作して出力を生成することによって機能を実行することができる。プロセスおよび論理フローはまた、FPGAおよび/またはASICなどであるがこれらに限定されない、特別な目的の論理回路によって実行することができ、装置を実装することもできる。
【0202】
1つまたは複数のコンピュータプログラムの実行に適したコンピュータには、汎用マイクロプロセッサ、特殊目的マイクロプロセッサ、および/または任意の他の種類の中央処理装置(「CPU」)が含まれるが、これらに限定されない。概して、CPUは、読み取り専用メモリ(「ROM」)および/またはランダムアクセスメモリ(「RAM」)から命令とデータを受信する。コンピュータの重要な要素は、命令を実行または実行するためのCPUと、命令とデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶装置(例えば、磁気、光磁気光ディスク、および/または光ディスク)を含むか、またはそれらからデータを受信するかまたはそれらへデータを転送するかあるいはその両方のために動作結合される。ただし、コンピュータにそのようなデバイスが必要なわけではない。さらに、コンピュータは、携帯電話、携帯情報端末(「PDA」)、モバイルオーディオまたはビデオプレーヤー、ゲーム機、グローバルポジショニングシステム(「GPS」)受信機、またはポータブルストレージデバイス(ユニバーサルシリアルバス(「USB」)フラッシュドライブなど)などであるがこれらに限定されない別のデバイスに組み込まれ得る。
【0203】
コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体には、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれる。例えば、コンピュータ可読媒体は、以下のうちの1つまたは複数を含み得る:消去可能プログラマブル読み取り専用メモリ(「EPROM」)、電気的消去可能プログラマブル読み取り専用メモリ(「EEPROM」)および/またはフラッシュメモリデバイスなどの半導体メモリデバイス;内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク;光磁気ディスク;および/またはCD-ROMおよびDVD-ROMディスクプロセッサとメモリは、特別な目的の論理回路によって補完または組み込むことができる。
【0204】
ユーザとの相互作用を提供するために、実施形態は、ユーザに情報を表示するための任意のタイプの表示デバイスを有するコンピュータ上に実装され得る。例示的なディスプレイデバイスには、プロジェクター、ブラウン管(「CRT」)モニター、液晶ディスプレイ(「LDC」)、発光ダイオード(「LED」)モニター、および/または有機物発光ダイオード(「OLED」)モニターのうちの1つまたは複数が含まれるが、これらに限定されない。コンピュータは、ユーザがコンピュータに入力を提供することができる1つまたは複数の入力デバイスをさらに備えることができる。入力デバイスは、キーボード、ポインティングデバイス(例えば、マウスまたはトラックボール)のうちの1つまたは複数を含み得る。ユーザーからの入力は、音響、音声、または触覚入力を含む任意の形式で受信できる。さらに、フィードバックは、任意の形態の感覚フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)を介してユーザーに提供され得る。コンピューターは、ユーザーが使用するデバイスとの間でドキュメントを送受信することにより、ユーザーと対話できる(例えば、Webブラウザーから受信した要求に応じて、ユーザーのクライアントデバイス上のWebブラウザーにWebページを送信することにより)。
【0205】
本明細書に記載されている主題の実施形態は、以下のコンポーネントのうちの1つまたは複数を含むコンピューティングシステムに実装することができる:バックエンドコンポーネント(例えば、データサーバ);ミドルウェアコンポーネント(アプリケーションサーバーなど);フロントエンドコンポーネント(例えば、グラフィカルユーザーインターフェイス(「GUT」)および/またはユーザーがこの仕様に記載されている主題の実装と対話できるWebブラウザを備えたクライアントコンピュータ);および/またはそれらの組合せ。システムの構成要素は、通信ネットワークなどであるがこれに限定されない、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの非限定的な例には、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、例えばインターネットが含まれる。
【0206】
コンピューティングシステムは、クライアントおよび/またはサーバーを含み得る。クライアントとサーバーは互いに離れていて、通信ネットワークを介して相互作用する場合がある。クライアントとサーバーの関係は、それぞれのコンピュータで実行され、クライアントとサーバーの関係を持っているコンピュータープログラムによって発生する。
【0207】
本明細書では、上記で論じた詳細、添付の図面、および特許請求の範囲を参照して、様々な実施形態が説明されている。様々な実施形態の完全な理解を提供するために、多数の特定の詳細が説明されている。ただし、場合によっては、簡潔な説明を提供するために、よく知られている、または従来の詳細が説明されていない。図は必ずしも縮尺どおりではなく、特定のコンポーネントの詳細を示すために、一部の機能が誇張または最小化されている場合がある。したがって、本明細書に開示される特定の構造的および機能的詳細は、限定として解釈されるべきではなく、単に請求項の基礎として、および当業者に実施形態を様々に使用することを教えるための代表的な基礎として解釈されるべきである。
【0208】
本明細書に記載および特許請求される実施形態および図面は例示的なものであり、実施形態を限定するものとして解釈されるべきではない。これらの実施例は、実施形態のいくつかの態様の例示として意図されているので、本明細書の主題は、特定の実施例によって範囲が限定されるべきではない。任意の等価実施例は、仕様の範囲内にあることを意図している。実際、本明細書に示され記載されたものに加えて、開示された実施形態の様々な修正が当業者に明らかになり、そのような修正もまた、添付の特許請求の範囲内に入ることが意図される。
【0209】
本明細書は多くの特定の実施の詳細を含むが、これらは、任意の発明の範囲または請求され得るものの制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。ディスティンクト実施形態の文脈で本明細書に記載されている特定の特徴はまた、単一の実施形態で組み合わせて実施することができる。逆に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態で別々に、または任意の適切なサブコンビネーションで実装することができる。さらに、特徴は、特定の組合せで作用するものとして上記に記載され、最初はそのように主張されても、主張された組み合わせからの1つまたは複数の特徴は、場合によっては組合せから切り出され得、主張された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0210】
同様に、操作は特定の順序で図面に描かれているが、これは、望ましい結果を達成するために、そのような操作が示された特定の順序または順番に実行されること、または図示されたすべての操作が実行されることを要求することとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有効な場合がある。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合され得る、または複数のソフトウェア製品にパッケージ化されている。
【0211】
本明細書で引用された特許、特許出願および出版物を含むすべての参考文献は、あらゆる目的のために、個々の刊行物または特許または特許出願がその全体が参照により組み込まれることが具体的かつ個別に示された場合と同程度に、その全体およびすべての目的のために参照により本明細書に組み込まれる。