风险分析

风险分析是这样一个过程:分析敏感数据,查找哪些属性可能会增加主体被识别或者个人敏感信息被泄露的风险。您可以在去标识化之前使用风险分析方法来帮助确定有效的去标识化策略,或者在去标识化之后监控任何变化或离群值。

去标识化是从数据中移除标识信息的过程。Cloud Data Loss Prevention (DLP) 可根据您配置敏感数据以满足组织要求的方式,检测敏感数据并对其进行去标识化

相反,重标识是将去标识化的数据与其他可用数据进行匹配,以确定数据所属人员的过程。重标识通常在涉及个人敏感信息(例如医疗或财务数据)时讨论。

要详细了解如何使用 Cloud DLP 衡量各类风险,请参阅衡量重标识化和披露风险

风险分析术语和技术

如果没有正确或充分地对敏感数据进行去标识化,则攻击者可能会重新标识该数据或获取个人敏感信息,从而对隐私造成严重影响。Cloud DLP 可根据几个指标,帮助计算量化这种风险。

在深入了解这些指标之前,我们首先要定义一些常用术语:

  • 标识符:标识符可用于唯一标识个人。例如,某人的全名或身份证号码被视为标识符。
  • 准标识符:准标识符并不唯一标识个人,但在与个人记录组合和交叉引用时,它们可以大大增加攻击者能够重标识个人的可能性。例如,邮编和年龄被视为准标识符。
  • 敏感数据:敏感数据是需要防止未授权曝光的数据。健康状况、工资、犯罪记录和地理位置等属性通常被视为敏感数据。请注意,标识符和敏感数据之间可能存在重叠。
  • 等价类:等价类是一组具有相同准标识符的行

Cloud DLP 可使用以下四种技术量化与数据集相关的风险级别:

  • k-匿名性:数据集的属性,用于表示数据集记录的可重标识性。如果数据集中每个人的准标识符与该数据集中至少 k - 1 个其他人相同,则该数据集是 k-匿名性的。
  • l-多样性:k-匿名性的扩展,它还可针对出现敏感值的每一列测量敏感值的多样性。如果对于具有相同准标识符的每组行,每个敏感属性至少有 l 个不同的值,则数据集具有 l-多样性。
  • k-map:通过将主体的给定去标识化数据集与更大的重标识(或“攻击”)数据集进行比较来计算可重标识性风险。Cloud DLP 不知道攻击数据集,但它可以使用公开提供的数据(如美国人口普查数据)、自定义统计模型(表示为一个或多个 BigQuery 表),或根据输入数据集中值的分布进行推断,对其进行统计建模。所有数据集(样本数据集和重标识数据集)共享一个或多个准标识符列。
  • Delta-存在性(δ-存在性):估算较大群体中指定用户出现在数据集中的概率。当数据集中的成员资格本身就是敏感信息时使用此方法。与 k-map 类似,Cloud DLP 不知道攻击数据集,但它使用公开提供的数据、用户指定的分布或根据输入数据集推断的结果,对其进行统计建模

关于 k-匿名性

当出于研究目的收集数据时,去标识化对于帮助维护人们的隐私至关重要。但同时,去标识化可能会导致数据集失去其实际作用。人们希望既可以量化数据集的可重标识性,又可以兼顾去标识化人员数据的有用性和数据所属人员的隐私,因此产生了 k-匿名性。它是数据集属性,可用于评估数据集中记录的可重标识性。

例如,请参考一组患者数据:

患者 ID 全名 邮编 年龄 健康状况 ...
746572 John J. Jacobsen 98122 29 心脏病
652978 Debra D. Dreb 98115 29 糖尿病,II 型
075321 Abraham A. Abernathy 98122 54 癌症,肝脏
339012 Karen K. Krakow 98115 88 心脏病
995212 William W. Wertheimer 98115 54 哮喘
...

此数据集包含我们之前描述的所有三种类型的数据:标识符、准标识符和敏感数据。

如果未遮盖健康状况等敏感数据,攻击者可能会利用每个敏感数据附加的准标识符,与包含类似准标识符的其他数据集交叉引用,并重标识该敏感数据适用的患者。

如果某数据集中人口统计列的每个值组合出现至少 k 个不同记录,则称该数据集为 k-匿名。回想一下,一组具有相同准标识符的行称为“等价类”。例如,如果您已经对准标识符进行了充分的去标识化,那么至少有四行的准标识符值相同,则数据集的 k-匿名性值为 4。

实体 ID 和计算 k-匿名性

Cloud DLP 在计算 k-匿名性时包含的一个重要选项就是可选的实体标识符 (ID)。通过实体 ID,您能够更准确地确定数据集的多个行与同一用户相对应这一常见场景中的 k-匿名性。否则,如果在不考虑用户的情况下单独计算每一行,则用于计算数据集的 k-匿名性值的总用户数就被人为地提高了。这使得计算的 k-匿名性值不准确。

请参考以下简单的数据集:

用户 ID 邮编
01 42000
02 17000
02 42000
03 17000
03 42000
03 42000
04 42000
04 17000

当不同的行属于同一用户时,如果不使用实体 ID 进行记录,则计算 k-匿名性时使用的用户总数为 8,但实际用户数为 4。在此数据集中,使用传统的 k-匿名性计算方法(不使用实体 ID),则 3 个人的 k-匿名性值为 3,5 个人的 k-匿名性值为 5,但数据库中实际只有 4 个人。

计算 k-匿名性时,使用实体 ID 会导致 Cloud DLP 将与用户关联的多组邮编视为准标识符。在我们的示例中,实际上存在 3 个“复合”准标识符值,因为向用户分配了 3 个不同的准标识符:42000,17000 和 42000 的多集,17000、42000 和 42000 的多集。它们与用户的对应如下所示:

  • [42000] 与 1 个唯一身份用户 (01) 相关联。
  • [17000, 42000] 与 2 个唯一身份用户(02 和 04)相关联。
  • [17000, 42000, 42000] 与 1 个唯一身份用户 (03) 相关联。

如您所见,此方法考虑到用户可能会在我们的邮编数据库中出现多次,并在计算 k-匿名性时对其进行相应处理。

k-匿名性资源

要详细了解 k-匿名性,请参阅由哈佛大学数据隐私实验室的 Pierangela Samarati 和 Latanya Sweeney 撰写的《在披露信息时保护隐私:k-匿名性以及通过泛化和抑制来强制匿名

要了解如何使用 Cloud DLP 计算 k-匿名性(使用或不使用实体 ID),请参阅使用 DLP API 计算 k-匿名性

关于 l-多样性

l-多样性与 k-匿名性密切相关,旨在帮助解决去标识化的数据集容易遭到下列攻击的问题:

  • 同质性攻击,即攻击者利用一组 k 个记录中值的同质性来预测一组 k-匿名化数据的敏感值
  • 背景知识攻击,即攻击者利用具有特定敏感属性的准标识符值之间的关联来缩小属性的可能值。

l-多样性试图根据 k-匿名性和等价类(多组具有相同准标识符值的行)来衡量攻击者可了解到的人员信息程度。如果对于每个等价类,每个敏感属性至少有 l 个唯一值,则数据集具有 l-多样性。对于每个等价类,数据集中有多少敏感属性?例如,如果 l-多样性 = 1,则表示每个人都具有相同的敏感属性,如果 l-多样性 = 2,则表示每个人都具有这两个敏感属性中的一个,依此类推。

l-多样性资源

要详细了解 l-多样性,请参阅由康奈尔大学计算机科学系的 Ashwin Machanavajjhala、Johannes Gerke 和 Daniel Kifer 撰写的《l-多样性:ķ-匿名性以外的隐私

要了解如何使用 Cloud DLP 计算 l-多样性,请参阅使用 DLP API 计算 l-多样性

关于 k-map

k-map 与 k-匿名性非常相似,只是它假设攻击者很可能不知道数据集中的人员。如果数据集相对较小,或者泛化属性所涉及的工作量太大,请使用 k-map。

就像 k-匿名性一样,k-map 要求您确定数据库的哪些列是准标识符。这样做是为了说明攻击者最有可能使用哪些数据来重标识主体。此外,计算 k-map 值需要重标识数据集:一个较大的表,用于与原始数据集中的行进行比较。

请参考以下小型示例数据集。此示例数据属于较大的假想数据库,该数据库来自一项调查,其答案包含敏感信息。

邮编 年龄
85535 79
60629 42

单独来看,这两个人的信息量似乎相同。实际上,考虑较大数据集的 k-匿名性有可能导致第二行对应的主体高度可标识的断言。但如果您退一步,仔细思考一下这些数据,就会发现并不是这样。特别是考虑到美国邮编 85535 区域内,目前约有 20 位居民。邮编 85535 区域的居民中可能只有一位是 79 岁。相比之下,邮编 60629 是芝加哥大都会区的一部分,居住着 10 多万人。该邮编区域的居民中约有 1000 位是 42 岁。

在我们的小数据集中,第一行很容易被重标识,但第二行不会。然而,根据 k-匿名性,这两行在较大的数据集中可能是完全唯一的。

和 k-匿名性一样,k-map 要求您确定数据库的哪些列是准标识符。Cloud DLP 的风险分析 API 会模拟重标识数据集,以估计攻击者可能采用哪些步骤比较原始数据集来重标识数据。在上例中,由于它涉及美国地点(邮编)和个人数据(年龄),并且我们假设攻击者不知道谁参与了调查,因此重标识数据集可能是居住在美国的每个人。

您现在已拥有准标识符和重标识数据集,可以计算 k-map 值:如果准标识符的每个值组合在重标识数据集中至少出现 k 次,则数据符合 k-map 值为 k。

鉴于此定义,并且数据库中的第一行可能仅对应于美国的一个人,因此示例数据集不符合 k-map 值至少为 2 的要求。要获得更大的 k-map 值,我们可以移除年龄值,如下所示:

邮编 年龄
85535 **
60629 **

如前所述,邮编 85535 约有 20 人,邮编 60629 超过 10 万人。因此,我们可以估算此泛化的新数据集的 k-map 值约为 20。

k-map 资源

要详细了解 k-map 及其与 k-匿名性的关系,请参阅由 Khaled El Emam 和 Fida Kamal Dankar 在《美国医学信息学协会期刊》上发表的使用 k-匿名性保护隐私

要了解如何使用 Cloud DLP 计算 k-map 估算值,请参阅使用 DLP API 计算 ķ-map 估算值

关于 δ-存在性

Delta-存在性(δ-存在性)估算与想要知道其目标是否在数据集中的攻击者相关的风险。这与重标识风险略有不同,因为目标不是查找哪条确切记录对应哪个个体,而只是了解某个体是否存在于数据集中。如果数据集中的所有个体共享一个共同的敏感属性,则使用此指标尤为合适;例如,他们都有相同的医学诊断。

与其他风险指标一样,δ-存在性要求您确定数据库的哪些列是准标识符。这样做是为了说明攻击者最有可能使用哪些数据来查找数据集中的个体。与 k-map 一样,计算 δ-存在性需要攻击数据集:一个较大的表格,用于与原始数据集中的行进行比较。

请参考以下小型示例数据集。此示例数据是由某种遗传疾病患者构成的较大假想数据库的一部分。

邮编 年龄
85942 72
85942 72
62083 53

在美国邮编 85942 中,大约有 2 人 72 岁,在邮编 77970 中,大约有 5 人 53 岁。前两个记录不能完全重标识,因为它们具有相同的准标识符。但由于在较大人群中只有两个人共享这些准标识符,因此攻击者可以推断出他们都患有该遗传疾病。δ-存在性通过计算数据集中具有某些准标识符的人的比率来量化这种特定风险。

与其他风险指标一样,δ-存在性要求您确定数据库的哪些列是准标识符。与估算 k-map 类似,Cloud DLP 的风险分析 API 会模拟人口数据集,以估计攻击者可能用于查找数据集中人员的数据集。在上例中,由于它涉及美国地点(邮编)和个人数据(年龄),并且我们假设攻击者不知道谁具有遗传疾病,因此人口数据集可能是居住在美国的每个人。

您现在已拥有准标识符和重标识数据集,可以计算 δ-存在性值:如果准标识符的每个值组合在数据集中最多出现 δ * k 次(其中 k 是人口数据集中具有这些准标识符值的总人数),则数据符合 δ-存在性的值为 δ。与 k-匿名性或 k-map 中的 k 不同,δ-存在性中的 δ 是 0 和 1 之间的实数。

鉴于此定义,并且总体人群中邮编 85942 中的两个 72 岁的人也在我们的数据库中,因此该数据集不符合 δ-存在性的所有 δ 均严格小于 1 的要求。为获得更小的 δ-存在性值,我们可以移除前两行的年龄值:

邮编 年龄
85942 **
85942 **
62083 53

现在,由于邮编 85942 对应的地址居住了 80 人,因此前两个记录的 δ 值约为 2/80 = 2.5%;第三个记录的 δ 值约为 1/5 = 20%。因此,我们可以估算此泛化的新数据集的 δ-存在性值约为 20%。

δ-存在性资源

要详细了解 k-map 及其与 k-匿名性的关系,请参阅由 Khaled El Emam 和 Fida Kamal Dankar 在《美国医学信息学协会期刊》上发表的使用 k-匿名性保护隐私

要了解如何使用 Cloud DLP 计算 δ-存在性估算值,请参阅使用 DLP API 计算 δ-存在性估算值