谈谈数据脱敏

数据脱敏

大数据平台通过将所有数据整合起来,充分分析与挖掘数据的内在价值,为业务部门提供数据平台,数据产品与数据服务。大数据平台接入的数据中可能包括很多用户的隐私和敏感信息,如用户在酒店的入住纪录,用户支付信息等,这些数据存在可能泄漏的风险。

大数据平台一般通过用户认证,权限管理以及数据加密等技术保证数据的安全,但是这并不能完全从技术上保证数据的安全。

严格的来说,任何有权限访问用户数据的人员,如ETL工程师或是数据分析人员等,均有可能导致数据泄漏的风险。

另一方面,没有访问用户数据权限的人员,也可能有对该数据进行分析挖掘的需求,数据的访问约束大大限制的充分挖掘数据价值的范围。

实际生产过程中,应用场景会更加复杂,仅靠类似这样的访问控制,满足不了生产的需要,还需要结合其它的途径,而数据脱敏就是一种有效的方式,既能满足日常生产的需要,又能保护数据安全。

数据脱敏,具体指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。

这样可以使数据本身的安全等级降级,就可以在开发、测试和其它非生产环境以及外包或云计算环境中安全地使用脱敏后的真实数据集。

借助数据脱敏技术,屏蔽敏感信息,并使屏蔽的信息保留其原始数据格式和属性,以确保应用程序可在使用脱敏数据的开发与测试过程中正常运行。

数据脱敏方案作为大数据平台整体数据安全解决方案的重要组成部分,是构建安全可靠的大数据平台必不可少的功能特性。

本文首先分析了数据泄露可能带来的风险,然后详细介绍了数据脱敏技术的理论基础与常用算法,最后介绍了一个基于大数据平台的数据脱敏解决方案。

隐私数据脱敏技术

通常在大数据平台中,数据以结构化的格式存储,每个表有诸多行组成,每行数据有诸多列组成。根据列的数据属性,数据列通常可以分为以下几种类型:

  1. 可确切定位某个人的列,称为可识别列,如身份证号,地址以及姓名等。
  2. 单列并不能定位个人,但是多列信息可用来潜在的识别某个人,这些列被称为半识别列,如邮编号,生日及性别等。美国的一份研究论文称,仅使用邮编号,生日和性别信息即可识别87%的美国人[3]。
  3. 包含用户敏感信息的列,如交易数额,疾病以及收入等。
  4. 其他不包含用户敏感信息的列。

所谓避免隐私数据泄露,是指避免使用数据的人员(数据分析师,BI工程师等)将某行数据识别为某个人的信息。

数据脱敏技术通过对数据进行脱敏,如移除识别列,转换半识别列等方式,使得数据使用人员在保证可对#2(转换后)半识别列,#3敏感信息列以及#4其他列进行数据分析的基础上,在一定程度上保证其无法根据数据反识别用户,达到保证数据安全与最大化挖掘数据价值的平衡。

隐私数据泄露类型

隐私数据泄露可以分为多种类型,根据不同的类型,通常可以采用不同的隐私数据泄露风险模型来衡量防止隐私数据泄露的风险,以及对应不同的数据脱敏算法对数据进行脱敏。一般来说,隐私数据泄露类型包括:

  1. 个人标识泄露:
    当数据使用人员通过任何方式确认数据表中某条数据属于某个人时,称为个人标识泄露。个人标识泄露最为严重,因为一旦发生个人标识泄露,数据使用人员就可以得到具体个人的敏感信息。
  2. 属性泄露:
    当数据使用人员根据其访问的数据表了解到某个人新的属性信息时,称为属性泄露。个人标识泄露肯定会导致属性泄露,但属性泄露也有可能单独发生。
  3. 成员关系泄露:
    当数据使用人员可以确认某个人的数据存在于数据表中时,称为成员关系泄露。成员关系泄露相对风险较小,个人标识泄露与属性泄露肯定意味着成员关系泄露,但成员关系泄露也有可能单独发生。

隐私数据风险泄露模型

将数据开放给数据分析人员,同时就引入了隐私数据泄露的风险。

在限制隐私数据泄露风险在一定范围内的同时,最大化数据分析挖掘的潜力,是数据脱敏技术的最终目标。

目前在隐私数据脱敏领域,有几个不同的模型可以用来从不同角度衡量数据可能存在的隐私数据泄露风险。

K-Anonymity

隐私数据脱敏的第一步是对所有可标识列进行移除或是脱敏,使得攻击者无法直接标识用户。

但是攻击者还是有可能通过多个半标识列的属性值识别个人。

攻击者可能通过社工(知道某个人的姓名,邮编,生日,性别等)或是其他包含个人信息的以开放数据库获得特定个人的半标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。

如表一所示,如果攻击者知道某用户的邮编和年龄,就可以得到该用户的疾病敏感信息。


表1(原始 病人信息)

为了避免这种情况的发生,通常需要对半标识列进行脱敏处理,如数据泛化等。

数据泛化是将半标识列的数据替换为语义一致但更通用的数据,已上述数据为例,对邮编和年龄泛化后的数据如表二所示。


表2(3-Anonymity 病人信息)

经过泛化后,有多条纪录的半标识列属性值相同,所有半标识列属性值相同的行的集合被称为相等集。

例如,表二中1,2,3行是一个相等集,4,5,6行也是一个相等集。

Sama- rati and Sweeney[4]引入了K-Anonymity用于衡量个人标识泄露的风险。 K-Anonymity定义如下:

K-Anonymity要求对于任意一行纪录,其所属的相等集内纪录数量不小于k,即至少有k-1条纪录半标识列属性值与该条纪录相同。

图二中的数据是一个3-Anonymity的数据集。

作为一个衡量隐私数据泄露风险的指标,K-Anonymity可用于衡量个人标识泄露的风险,理论上来说,对于K-Anonymity数据集,对于任意纪录,攻击者只有1/k的概率将该纪录与具体用户关联。

L-Diversity

K-Anonymity可用于保护个人标识泄露的风险,但是无法保护属性泄露的风险。

对于K-Anonymity的数据集,攻击者可能通过同质属性攻击与背景知识攻击两种方式攻击用户的属性信息。

  1. 同质属性攻击。对于图二半标识列泛化后的数据集,假如攻击者知道Bob邮编为47677,年龄为29,则Bob一定对应于前面三条记录,从而可以确定Bob有心脏病。
  2. 背景知识攻击。对于图二半标识列泛化后的数据集,假如攻击者知道Alice邮编为47673,年龄为36,则Alice一定对应于后面三条记录,如果攻击者知道Alice患有心脏病的几率很小,则能判断Alice很有可能患有癌症。

Machanavajjhala et al. [5] 引入了L-Diversity用于衡量属性泄露的风险,L-Diversity定义如下:

如果对于任意相等集内所有记录对应的敏感数据的集合,包含L个"合适"值,则称该相等集是满足L-Deversity。

如果数据集中所有相等集都满足L-Deversity,则称该数据集满足L-Deversity。

所谓L个“合适”值,最简单的理解就是L个不同值。

基于图二的数据通过插入干扰纪录,一个3-Anonymity 2-Diversity的数据集如表三所示:


表3 3-Anonymity 2-Diversity 病人信息

相对于K-Anonymity标准,符合L-Deversity标准的数据集显著降低了属性数据泄露的风险。

对于满足L-Diversity的数据集,理论上,攻击者最多只有1/L的概率能够属性泄露攻击,将特定用户与其敏感信息关联起来。

一般来说是通过插入干扰数据构造符合L-Diversity标准的数据集,但是同数据泛化一样,插入干扰数据也会导致表级别的信息丢失。

同时L-Diversity标准也有不足之处。

  1. L-Diversity标准有可能很难或是没有必要实现。

例如,对于HIV的测试数据,测试结果列可能为阴性或是阳性。

对于10000条记录,可能99%的记录都是阴性的,只有1%是阳性的。

对于用户来说两种不同的测试结果敏感程度也是不同的,测试结果为阴性的用户可能不介意其他人看到他的测试结果,但是测试结果为阳性的用户可能更希望对别人保密。

为了生成2-Deversity的测试数据集,会丢失大量的信息,降低数据分析挖掘的价值。

  1. L-Diversity标准无法防御特定类型的属性数据泄露。
  • 倾斜攻击

如果敏感属性分布存在倾斜,L-Diversity标准很有可能无法抵御属性数据泄露。

继续以HIV测试数据为例,假如构造的数据集对于任意相等类测试结果都包含阴性与阳性,且阴性数量与阳性相同,该数据集肯定满足2-Diversity。

按照真实测试记录的分布,对于任意个人,攻击者只能判断其有1%的可能测试结果为阳性。

但是对于2-Diversity数据集,攻击者会判断每个人有50%的可能测试结果为阳性。

  • 相似性攻击

如果相等类的敏感属性分布满足L-Diversity,但是属性值相似或是内聚,攻击者有可能从得到很重要的信息。

例如对于表四所示,病人数据满足3-Diversity,攻击者如果了解Bob邮编为47677,年龄为29,则可以确认Bob的工资收入在3-5K之间,且能确认Bob得了胃病相关的病,因为前三条的病都和胃病相关。


表4 3-Diversity 病人信息

简单来说,对于L-Diversity相同的相等集,敏感属性值的分布信息对于保护属性泄露至关重要。

L-Diversity只是用来衡量相等集的不同属性值数量,并没有衡量不同属性值的分布,所以其在衡量属性泄露风险上仍有不足之处。

T-Closeness

直观的来说,隐私信息泄露的程度可以根据攻击者增量获得的个人信息衡量。

假设攻击者在访问数据集之前已知的个人信息为B0,然后假设攻击者访问所有半标识列都已移除的数据集,Q为数据集敏感数据的分布信息,根据Q,攻击者更新后的个人信息为B1。

最后攻击者访问脱敏后的数据集,由于知道用户的半标识列的信息,攻击者可以将某用户与某相等集联系在一起,通过该相等集的敏感数据分布信息P,攻击者更新后的个人信息为B2。

L-Diversity约束是通过约束P的diverisity属性,尽量减少B0和B2之间的信息量差距,差距越小,说明隐私信息泄露越少。

T-Closeness约束则期望减少B1和B2之间的信息量差距,减少攻击者从敏感数据的全局分布信息和相等集分布信息之间得到更多的个人隐私信息。

T-Closeness的定义如下:

如果一个相等类的敏感数据的分布与敏感数据的全局分布之间的距离小于T,则称该相等类满足T-Closeness约束。

如果数据集中的所有相等类都满足T-Closeness,则称该数据集满足T-Closeness。

T-Closeness约束限定了半标识列属性与敏感信息的全局分布之间的联系,减弱了半标识列属性与特定敏感信息的联系,减少攻击者通过敏感信息的分布信息进行属性泄露攻击的可能性。

不过同时也肯定导致了一定程度的信息丢失,所以管理者通过T值的大小平衡数据可用性与用户隐私保护。

常见数据脱敏算法

K-Anonymity, L-Diversity和T-Closeness均依赖对半标识列进行数据变形处理,使得攻击者无法直接进行属性泄露攻击,常见的数据变形处理方式如下:


常用数据变形操作

此外,K-Anonymity, L-Diversity和T-Closeness约束可能还需要生成干扰数据,敏感数据干扰项的生成策略与方法也是保证K-Anonymity, L-Diversity和T-Closeness的重要条件,在这里篇幅有限,就不过多介绍,请参考引用中的相关论文[4,5,6]。

大数据脱敏平台

用户隐私数据保护与挖掘用户数据价值是两个互相冲突的矛盾体,彻底的数据脱敏,需要抹去全部的用户标识信息,使得数据潜在的分析价值大大降低。

另一方面,完全保留用户隐私数据信息,可最大化数据的分析价值,同时导致用户隐私泄露的风险无法控制。

因此大数据脱敏平台的设计目标并不是实现工具算法用来完全抹去全部的用户标识信息,而是包括如下几个目标:

  1. 数据泄露风险可控。
    首先,实现基于大数据平台的脱敏算法库,可并行,高效的按照脱敏规则对隐私数据进行脱敏。其次,基于数据脱敏的理论基础,建立用户隐私数据泄露风险的衡量模型,可定性定量的准确衡量数据可能发生泄露的风险。
  2. 可管理。
    结合大数据平台的用户认证体系,权限管理体系,以及隐私数据不同保护级别的权限管理体系,实现对隐私数据基于审批的数据访问机制。结合公司制度,规范,法务等管理,实现在尽可能保护用户隐私数据,减少数据泄露风险的前提下,最大化保留数据分析挖掘的价值。
  3. 可审计。
    对数据的访问要保证可回溯,可审计,当发生数据泄露时,要保证能够通过审计日志找到对应的泄露人员。

大数据脱敏平台的设计方向一般包括静态大数据脱敏平台和动态大数据脱敏平台,所谓静态和动态之分,主要在于脱敏的时机不同。

  • 对于静态脱敏来说,数据管理员提前对数据进行不同级别的脱敏处理,生成不同安全级别的数据,然后授予不同用户访问不同安全级别数据的权限。
  • 对于动态脱敏来说,管理员通过元数据管理不同用户访问具体数据的安全权限,在用户访问数据的时候,动态的从原始数据中按照用户权限动态的进行脱敏处理。

大数据平台脱敏技术方案是一个非常有趣的课题,目前业界还没有看到有成熟的方案,鉴于其对数据安全和数据价值的作用,非常值得深入研究。

美团数据仓库脱敏

敏感数据梳理

在数据脱敏进行之前,首先要确定哪些数据要作为脱敏的目标。根据美团特有的业务场景和数据安全级别划分(绝密、高保密、保密、可公开,四个级别), 主要从“高保密”等级的敏感数据,开始进行梳理。

这里把敏感数据分成四个维度进行梳理,用户、商家、终端、公司。

  1. 从用户维度进行梳理可能有这些敏感字段如下:手机号码、邮件地址、账号、地址、固定电话号码等信息(此外个人隐私数据相关还有如:种族、政治观点、宗教信仰、基因等)
  2. 从商家维度进行梳理:合同签订人,合同签订人电话等(不排除全局敏感数据:如商家团购品类等)
  3. 从用户终端维度进行梳理:能够可能标识终端的唯一性字段,如设备id。
  4. 从公司角度进行梳理:交易金额、代金卷密码、充值码等

确定脱敏处理方法

梳理出了敏感数据字段,接下来的工作就是如何根据特定的应用场景对敏感字段实施具体的脱敏处理方法。

常见的处理方法如下几种有:

  • 替换:如统一将女性用户名替换为F,这种方法更像“障眼法”,对内部人员可以完全保持信息完整性,但易破解。
  • 重排:序号12345重排为54321,按照一定的顺序进行打乱,很像“替换”, 可以在需要时方便还原信息,但同样易破解。
  • 加密:编号12345加密为23456,安全程度取决于采用哪种加密算法,一般根据实际情况而定。
  • 截断:13811001111截断为138,舍弃必要信息来保证数据的模糊性,是比较常用的脱敏方法,但往往对生产不够友好。
  • 掩码: 123456 -> 1xxxx6,保留了部分信息,并且保证了信息的长度不变性,对信息持有者更易辨别, 如火车票上得身份信息。
  • 日期偏移取整:20130520 12:30:45 -> 20130520 12:00:00,舍弃精度来保证原始数据的安全性,一般此种方法可以保护数据的时间分布密度。

但不管哪种手段都要基于不同的应用场景,遵循下面两个原则:

  1. remain meaningful for application logic(尽可能的为脱敏后的应用,保留脱敏前的有意义信息)
  2. sufficiently treated to avoid reverse engineer(最大程度上防止黑客进行破解)

以这次脱敏一个需求为例:

美团一般的业务场景是这样的,用户在网站上付款一笔团购单之后,会将团购密码,发到用户对应的手机号上。

这个过程中,从用户的角度来看团购密码在未被用户消费之前,对用户来说是要保密的,不能被公开的,其次美团用户的手机号也是要保密的,因为公开之后可能被推送一些垃圾信息,或者更严重的危害。

从公司内部数据分析人员来看,他们有时虽然没有权限知道用户团购密码,但是他们想分析公司发送的团购密码数量情况,这是安全允许;

再有数据分析人员虽然没有权限知道用户具体的手机号码,但是他们需要统计美团用户手机的地区分布情况,或者运营商分布差异,进而为更上层的决策提供支持。

根据这样的需求,可以对团购密码做加密处理保证其唯一性,也保留其原有的数据格式,在保密的同时不影响数据分析的需求。

同样,将用户的手机号码的前7位,关于运营商和地区位置信息保留,后四位进行模糊化处理。

这样同样也达到了保护和不影响统计的需求。

因此从实际出发遵循上面的两个处理原则,第一阶段在脱敏工具集中,确定了如下4种基本类型的脱敏方案(对应4个udf):


脱敏方法

确定实施范围与步骤

通过上面字段的梳理和脱敏方案的制定,对美团数据仓库中涉及到得敏感字段的表进行脱敏处理。

在数据仓库分层理论中,数据脱敏往往发生在上层,最直接的是在对外开放这一层面上。

在实际应用中,既要参考分层理论,又要从美团现有数据仓库生产环境的体系出发,主要在数据维度层(dim),以及基础服务数据层(fact)上实施脱敏。

这样,可以在下游相关数据报表以及衍生数据层的开发过程中使用脱敏后的数据,从而避免出现数据安全问题。

确认处理的表和字段后,还要确保相关上下游流程的正常运行, 以及未脱敏的敏感信息的正常产出与存储(通过更严格的安全审核来进行访问)。

以用户信息表user为例,脱敏步骤如下:

1.首先生产一份ndm_user未脱敏数据,用于未脱敏数据的正常产出。
2.对下游涉及的所有依赖user生产流程进行修改,来确保脱敏后的正常运行,这里主要是确认数据格式,以及数据源的工作。
3.根据对应的脱敏方法对user表中对应的字段进行脱敏处理。

通过上面的几个步骤的实施,完成了第一阶段的数据脱敏工作。

在数据脱敏方案设计与实施过程中, 我们觉得更重要的还是从特定的应用场景出发进行整体设计,兼顾了数据仓库建设这一重要考量维度。

数据脱敏实施为公司数据安全的推进,提供了有力支持。

当然,我们第一阶段脱敏的工具集还相对较少,需要补充。 脱敏的技术架构还有待完善和更加自动化。

总结

针对于大数据平台对于数据脱敏的需求,本文分析了数据泄露可能带来的风险,介绍了数据脱敏技术的理论基础与实现方式,同时简单分析了大数据平台的隐私数据脱敏技术方向。

本文讨论的均是基于离线数据的数据脱敏,流式数据的脱敏技术无论是理论基础与具体实践大都还处在摸索的过程中[7],留待以后继续探索。

引用

  1. 我国隐私保护相关法律报告
  2. 索尼用户隐私数据泄露事件
  3. Uniqueness of Simple Demographics in the U.S. Population
  4. Protecting Privacy when Disclosing Information: k-Anonymity and Its Enforcement through Generalization and Suppression
  5. ℓ-Diversity: Privacy Beyond k-Anonymity
  6. Enhancing Cloud Security Using Data Anonymization
  7. CASTLE: Continuously Anonymizing Data Streams

参见:
大数据与数据脱敏:https://zhuanlan.zhihu.com/p/20824603
美团数据仓库-数据脱敏:https://tech.meituan.com/data_mask.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容