全面解析数据脱敏技术及应用
2021-05-11 12:17:26 Author: www.freebuf.com(查看原文) 阅读量:95 收藏

随着云计算、大数据、5G时代的到来,我们置身于一个无处不在数字化环境中。我们的工作、生活都离不开数据的支持,但是我们在享受数字技术给我们带来的便利和快捷的同时,个人隐私数据泄露的安全问题也变得日益凸显。

2017年3日,央视节目曝光一起重大数据泄露案件,涉及50亿条公民数据如姓名、手机号、证件号、银行卡号、地址信息等非法出售,不法分子利用黑客技术大量收集这些重要数据信息再贩卖给赌博网站或者诈骗集团。其中主要犯罪嫌疑人竟然是京东员工,其利用职务之便盗窃京东用户的大量数据。

2018年8月,网络爆料约5亿条华住集团连锁酒店用户数据在暗网售卖,包含住客姓名、证件号、手机号、邮箱地址、开房记录等大量个人隐私数据,华住集团当即报警。后经上海警方侦查,利用黑客手段窃取华住集团旗下酒店数据并在境外网站兜售的犯罪嫌疑人刘某某被抓获。

动辄过亿的数据泄露案例,触目惊心。大数据时代,如何在数据共享及使用等过程中实现对隐私数据的保护,避免个人隐私的泄露,是当前迫切需要解决的安全技术问题。数据脱敏技术作为大数据隐私保护的主流技术,逐渐成为当前数据安全的热门技术。

一、数据脱敏简介

  数据脱敏 (英文为Data Masking), 又称数据变形、数据去隐私化或数据漂白,是指对某种或多种敏感数据通过脱敏规则进行数据的变形,实现对敏感数据的保护。数据脱敏能够有效的解决敏感数据在大数据环境中使用的问题,在不违反应用系统使用规则的条件下,对真实的隐私数据进行改造并提供使用,从而降低隐私数据泄露的风险。常见的隐私数据,有名称信息(如姓名)、证件号码(如身*份*号、护照号)、联系方式(如手机号码、固定电话号码、电子邮箱)、地址信息(如家庭地址、单位地址)、账号信息(如微信号、银行卡号)、密码信息 (如网站登录密码、银行取款密码)等。通常,各类app应用中身*份*证*号、手机号、银行卡号等数字部分通过星号(*)替代就是典型的数据脱敏技术的应用。

 数据脱敏在不降低数据安全性的前提下,使原有数据的共享对象和使用范围得以拓展,因此,成为大数据应用环境下最有效的敏感数据保护技术之一。在数据脱敏技术的支持下,金融、电信、互联网等各类大数据应用企业能够在收集、存储、共享及使用个人隐私数据时,通过制定各类脱敏策略,对各种敏感数据进行脱敏,实现数据跨地域、环境、应用系统的安全访问,解决隐私数据泄露问题。

二、数据脱敏算法

对于数据脱敏技术及应用,数据脱敏算法是其中的核心,常见的传统脱敏算法对某一种或多种敏感数据进行脱敏处理,包括替换、加密、遮掩、替换、混淆、平均值、置空等。在传统脱敏算法之外,为实现数据集整体的安全性,降低隐私数据的敏感程度,同时尽可能保留数据的统计特征,还存在数据匿名化的算法。

(一)传统脱敏算法

1.替换

指利用伪装数据对源数据中的敏感数据进行完全替换。为保证安全性,一般替换用的数据都不具可逆性。常见替换算法,如下,

映射替换:为可逆替换,使用替换码表对敏感数据进行整体映射替换。

随机替换:为不可逆替换,使用随机字符对敏感数据进行部分随机替换。

替换算法能够有效脱敏单类数据,但往往也会使相关数据字段失去业务含义,对于替换算法而言,替代码表的设计非常关键。

2.加密

指对待脱敏数据进行加密处理,使未授权的系统或用户只能够看到无意义的加密数据。在存在解密需求的场景下,系统也可以提供解密能力,并分发密钥给关联方以恢复原始数据。敏感数据进行加密处理后,加密数据与原始数据差异较大。可以使用的数据脱敏算法包括:MD5加密、AES对称加密、FPE格式保留加密等方法。

3.遮掩

指对敏感数据中的部分内容使用统一的掩饰符(如“*、x”等)进行替换,使得敏感数据可以保持部分内容的公开。此种算法可以在实现数据脱敏的同时,保持原有数据的感观,是当前普遍使用的脱敏算法。

4.变换

指对数值和日期类型的敏感数据进行取整位移。例如,对于日期2020年3月15日19:37:28,取整变为2020年3月15日19:00:00。变换算法在保持原始数据统计特征的同时,通过原始数据的取整变换,有效降低数据的敏感程度。

5.混淆

指通过对敏感数据在指定数据范围内进行打散重排和随机选择,打乱与其他数据的关联关系,使数据不再表示其原有的含义,从而实现脱敏。

混淆在相当大范围内保证部分业务数据信息 (如有效数据范围、数据统计特征等),使脱敏后数据看起来跟源数据更一致,与此同时也牺牲了一定的安全性。

6.平均取值

针对数值型数据,首先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。

7.置空

直接删除敏感数据将其置空。

(二)数据匿名化

数据匿名化是一项大数据处理技术,对数据进行去除身份标识的不可逆匿名化处理,可以在不泄露用户隐私数据的前提下,尽可能地保证数据的可用性和真实性。常见的数据匿名化算法有:

1.K-匿名(K-anonymity)

K-anonymity算法要求是对任意一行纪录,其所属的相等集内的纪录数量不小于k,至少有k-1条纪录的准标识列属性值与该条纪录相同,具有相同数值的 k 项记录增加了识别的复杂性,会让试图识别数据身份的攻击者难以区分。K-anonymity 虽然对数据进行匿名化操作,但是由于没有对敏感属性数据做任何的约束,导致数据容易遭受同质攻击和背景知识攻击。

2.L-多样性(L-Diversity)

如果对于任意相等集内所有记录对应的敏感数据属性集合,至少包含1个well-represented,则称该相等集满足 L-Deversity 。如果数据集中所有相等集都满足L-Deversity ,则称该数据集满足L-Deversity 。 相对于 K-Anonymity 标准,L-Deversity 标准的数据集显著降低了属性数据泄漏的风险。理论上,攻击者最多只有1/L 的概率能够将特定用户与其敏感信息关联起来。

3.T-保密(T-closeness)

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

4.M-invariance匿名算法

M-invariance,针对动态递增数据集的一种匿名化原则,此原则保证了在任意时刻发布的等价类都包含 M 个不同取值的记录,并且需要保证相同的记录在不同时刻的取值相同,从而保证在动态数据发布环境下的数据一致性。

三、数据脱敏规则

在脱敏算法的基础上,通过将一种或多种脱敏算法组合应用在一类特定的敏感数据上即称为脱敏规则。针对姓名、证件号、手机号、家庭住址等几类常见个人隐私数据的脱敏规则,示例说明如下:

  • 姓名类脱敏规则

姓名类的数据脱敏,采用规则为:2个字符使用*号遮掩最后1位,3-6个字符使用*号遮掩最后2 位,6个字符以上使用*号遮掩第3-6个字符。例如:

贾零--->贾*;张北京--->张**;阿卜杜拉买买提--->阿卜****提

  • 证件号类脱敏规则

居民身*份*证类的数据脱敏,采用规则为:保留前6位和后4位,其余使用*号遮掩。例如:

110101199003076878--->110101********6878

  • 手机号类脱敏规则

个人手机号类的数据脱敏,采用规则为:保留前3位和后4位,对中间4位使用*号遮掩。例如:

13800138000--->138****8000

  • 家庭地址类脱敏规则

家庭地址类的数据脱敏,采用规则为:地址中有1位以上数字的最后1位使用*号遮掩;没有数字的,保留最后1位,之前5位使用*号遮掩。例如:

朝阳大街110号人民小区15栋1单元12楼1202室--->朝阳大街11*号人民小区1*栋*单元120*室;

建国南路中山北苑一栋五楼-->建国南路中山北****楼。

四、脱敏技术类型

当前数据脱敏技术类型主要可以分为静态数据脱敏和动态数据脱敏两类,两者面向的应用场景、技术路线、实现机制有所不同。

(一)静态脱敏

静态数据脱敏指将数据文件进行去敏感、去隐私化的处理同时保证数据之间的关联关系。外发给第三方进行开发测试或是数据分析,得到的分析结果后能够将分析出的数据进行回溯。

静态脱敏方式适用于第三方需要获取完整的数据才能保证数据分析工作的顺利完成,对于数据提供方,又不希望隐私数据泄漏出去,在这种情况下,就需要对数据进行可回溯的脱敏方式,保证发送出去的数据不包含隐私信息,当第三方数据使用完成后,将分析系统的结果数据回溯成真实的结果数据,这样既保证了使用过程中的数据共享和结果一致性,又保证了真实数据不会在使用过程中泄漏。

(二)动态脱敏

动态数据脱敏指用户在前端应用调取后台数据库中敏感数据时,进行数据脱敏,再反馈至前端页面呈现。可通过在中间件部署脱敏插件的方式,对系统数据库中隐私数据进行实时、动态的脱敏。

通常依据系统不同用户的身份特征,可动态对数据库返回的敏感数据进行不同类型的脱敏操作。特殊授权用户也可以访问未经脱敏处理的原始数据。动态脱敏与静态脱敏一样可以执行替换、加密、遮掩、替换等脱敏算法,针对不同的用户,可以指定对应的数据脱敏算法。

五、脱敏实现流程

数据脱敏的流程一般分为:敏感数据发现、敏感数据梳理、脱敏方案制定、脱敏任务执行四大步骤,结合数据脱敏算法、规则以及脱敏的环境来实现数据脱敏效果。

(一)敏感数据发现

分为人工发现和自动发现两种。对于相对固定的业务数据,可以采用人工发现,明确指定那些列、那些库的数据是需要脱敏,这些数据一般数据结构和数据长度不会有变化,大部分为数值型和固定长度的字符。比如:姓名、手机号

家庭地址等,针对这些数据可以通过人工指定脱敏规则和不同的数据访问策略,保证敏感信息不被泄漏。自动识别根据预定义的敏感数据特征,借助敏感数据信息库和分词系统,自动识别数据库中包含的敏感信息,相对于人工识别可以减少工作量和防止遗漏。

(二)敏感数据梳理

在敏感数据发现的基础上,完成敏感数据列、敏感数据关系的调整,以保证数据的关联关系。通过替换、加密、遮掩、替换、混淆、平均值、置空等数据脱敏算法,针对不同的数据类型进行数据脱敏。

(三)敏感方案制定

对于不同的数据脱敏需求,在脱敏算法的基础上,可配置专门的脱敏策略。脱敏方案的制定主要依靠脱敏策略和脱敏算法来实现,通过配置和扩展脱密算法以制定最佳方案。

(四)脱敏任务执行

依据制定的脱敏方案执行脱敏任务,包括脱敏任务的启动、停止、暂停等操作,脱敏任务执行支持并行处理、中断恢复等操作。

六、数据脱敏的应用场景

数据脱敏分为静态脱敏和动态脱敏两类,两者因技术路线和实现机制不同,分部应用在不同的场景。

(一)静态脱敏应用场景

静态数据脱敏一般应用在敏感数据脱离原生业务系统或生产环境使用。开发测试、数据共享、科学研究是静态数据脱敏的三个典型应用场景。

1. 开发测试

开发测试场景中,如银行、保险等金融行业系统中含有姓名、身份、银行卡号等敏感数据,由于开发测试需要使用这些真实数据,因此需要通过脱敏手段保证敏感数据不被泄露。

此类场景的特点是数据库类型多,系统体系架构复杂,跨系统、跨平台测试数据难以获取;开发测试场景需高度模拟生产环境,对脱敏后数据与业务的一致性有严格要求;生产环境与开发测试环境互相隔离,彼此无法互相访问。

2. 数据共享

数据共享场景在一些特定需求下,需要对特定敏感数据进行处理,保留部分敏感数据,交付给企业内部的其他部门或者外部企业。

此类场景的特点是数据共享场景中,特定需求下需要保留部分敏感数据字段,但对其他隐私数据可以进行遮蔽、仿真等操作。作为数据提供方,需要提供溯源机制,当发生数据泄露的时候,可以确定数据泄露方,便于溯源追责。

3. 科学研究

科学研究核心是将对数据进行统计分析,用于科学研究。需要保证数据特征,脱敏后保证科学研究所必须的内容。

此类场景的特点是为保证获取的数据可以满足科学研究,保留数据部分要真实有效;脱敏后的数据需要有分析的价值,数据的业务特征不能丧失;大数据分析平台中包括海量的用户隐私和敏感数据,针对大数据环境进行数据脱敏,数据结构复杂,包括结构化、非结构化数据等,脱敏操作复杂;特定场景下需对脱敏数据进行复敏,例如银行需要通过对脱敏后的转账记录、贷款记录、还款记录等进行分析,最后将结果回溯到真实银行客户。

(二)动态脱敏应用场景

动态脱敏常用在敏感数据需要实时进行脱敏,一般用来解决在大数据应用环境需要根据不同使用情况对同一种敏感数据读取时进行不同级别脱敏的场景,如业务脱敏、运维脱敏、数据交换脱敏等。

1. 业务脱敏

业务脱敏一般应用在业务用户访问应用系统敏感数据之间,进行数据脱敏的保护,同时需要考虑用户身份和权限。

此类场景的特点是业务用户访问应用系统时,需明确用户身份的真实性;不同权限业务用户访问敏感数据时需采取不同级别的脱敏规则;对于无法升级改造的旧系统,重新更改代码过于复杂,只能依赖于外部技术实现数据的脱敏保护。

2. 运维脱敏

运维脱敏用来解决数据库运维过程中涉及敏感数据保护问题,数据库运维管控不当或无法有效审计分析,需要借助运维脱敏保护敏感数据安全。

此类场景的特点是共享、临时账号滥用现象,导致运维身份不清;特权用户访问敏感数据,行为不受管控;运维人员涉及到高危操作、误操作等问题,一旦关键数据丢失,数据难以进行恢复数据库;内部操作无法审计分析,事后无法进行追责。

3. 数据交换脱敏

数据交换脱敏应用在通过API接口方式进行数据交换的场景中,此场景中通常包含丰富的数据类型和不同用户身份,需要制定不同脱敏策略。

此类场景的特点是通过API接口方式向外部平台提供数据;接口需针对不同用户的身份信息提供不同的脱敏策略。


文章来源: https://www.freebuf.com/articles/paper/272472.html
如有侵权请联系:admin#unsafe.sh