大数据与数据脱敏

声明算法

本专栏为个人我的技术专栏,全部观点均为我的观点。如欲转载,请注明出处。数据库

大数据平台经过将全部数据整合起来,充分分析与挖掘数据的内在价值,为业务部门提供数据平台,数据产品与数据服务。大数据平台接入的数据中可能包括不少用户的隐私和敏感信息,如用户在酒店的入住纪录,用户支付信息等,这些数据存在可能泄漏的风险。大数据平台通常经过用户认证,权限管理以及数据加密等技术保证数据的安全,可是这并不能彻底从技术上保证数据的安全。严格的来讲,任何有权限访问用户数据的人员,如ETL工程师或是数据分析人员等,均有可能致使数据泄漏的风险。另外一方面,没有访问用户数据权限的人员,也可能有对该数据进行分析挖掘的需求,数据的访问约束大大限制的充分挖掘数据价值的范围。数据脱敏经过对数据进行脱敏,在保证数据可用性的同时,也在必定范围内保证恶意攻击者没法将数据与具体用户关联到一块儿,从而保证用户数据的隐私性。数据脱敏方案做为大数据平台总体数据安全解决方案的重要组成部分,是构建安全可靠的大数据平台必不可少的功能特性。本文首先分析了数据泄露可能带来的风险,而后详细介绍了数据脱敏技术的理论基础与经常使用算法,最后介绍了一个基于大数据平台的数据脱敏解决方案。安全

隐私数据脱敏技术

一般在大数据平台中,数据以结构化的格式存储,每一个表有诸多行组成,每行数据有诸多列组成。根据列的数据属性,数据列一般能够分为如下几种类型:工具

  1. 可确切定位某我的的列,称为可识别列,如身份证号,地址以及姓名等。测试

  2. 单列并不能定位我的,可是多列信息可用来潜在的识别某我的,这些列被称为半识别列,如邮编号,生日及性别等。美国的一份研究论文称,仅使用邮编号,生日和性别信息便可识别87%的美国人[3]。大数据

  3. 包含用户敏感信息的列,如交易数额,疾病以及收入等。加密

  4. 其余不包含用户敏感信息的列。spa

所谓避免隐私数据泄露,是指避免使用数据的人员(数据分析师,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的测试数据集,会丢失大量的信息,下降数据分析挖掘的价值。

  2. 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均依赖对半标识列进行数据变形处理,使得攻击者没法直接进行属性泄露攻击,常见的数据变形处理方式以下:

 

​ 表5 经常使用数据变形操做

 

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

大数据脱敏平台

用户隐私数据保护与挖掘用户数据价值是两个互相冲突的矛盾体,完全的数据脱敏,须要抹去所有的用户标识信息,使得数据潜在的分析价值大大下降。另外一方面,彻底保留用户隐私数据信息,可最大化数据的分析价值,同时致使用户隐私泄露的风险没法控制。所以大数据脱敏平台的设计目标并非实现工具算法用来彻底抹去所有的用户标识信息,而是包括以下几个目标:

  1. 数据泄露风险可控。首先,实现基于大数据平台的脱敏算法库,可并行,高效的按照脱敏规则对隐私数据进行脱敏。其次,基于数据脱敏的理论基础,创建用户隐私数据泄露风险的衡量模型,可定性定量的准确衡量数据可能发生泄露的风险。

  2. 可管理。结合大数据平台的用户认证体系,权限管理体系,以及隐私数据不一样保护级别的权限管理体系,实现对隐私数据基于审批的数据访问机制。结合公司制度,规范,法务等管理,实如今尽量保护用户隐私数据,减小数据泄露风险的前提下,最大化保留数据分析挖掘的价值。

  3. 可审计。对数据的访问要保证可回溯,可审计,当发生数据泄露时,要保证可以经过审计日志找到对应的泄露人员。

大数据脱敏平台的设计方向通常包括静态大数据脱敏平台和动态大数据脱敏平台,所谓静态和动态之分,主要在于脱敏的时机不一样。对于静态脱敏来讲,数据管理员提早对数据进行不一样级别的脱敏处理,生成不一样安全级别的数据,而后授予不一样用户访问不一样安全级别数据的权限。对于动态脱敏来讲,管理员经过元数据管理不一样用户访问具体数据的安全权限,在用户访问数据的时候,动态的从原始数据中按照用户权限动态的进行脱敏处理。大数据平台脱敏技术方案是一个很是有趣的课题,目前业界尚未看到有成熟的方案,鉴于其对数据安全和数据价值的做用,很是值得深刻研究,但愿之后能够继续以合适的方式分享我在这方面的研究与实践。

总结

针对于大数据平台对于数据脱敏的需求,本文分析了数据泄露可能带来的风险,介绍了数据脱敏技术的理论基础与实现方式,同时简单分析了大数据平台的隐私数据脱敏技术方向。本文讨论的均是基于离线数据的数据脱敏,流式数据的脱敏技术不管是理论基础与具体实践大都还处在摸索的过程当中[7],留待之后继续探索。

相关文章
相关标签/搜索