电力大数据的脱敏评估及系统实现
2020-11-12叶水勇
叶水勇
(国网安徽省电力有限公司黄山供电公司,安徽 黄山 245000)
0 引 言
所谓数据脱敏就是利用脱敏规则将一些敏感信息(如身份证号、账号、密码、地址、电话号码等)进行数据变形,从而实现对敏感、隐私的数据进行可靠有效的保护[1-2]。通过数据脱敏技术,有针对性地保护与当前分析无关的信息,并保证分析挖掘的有效进行。目前国内大多数企业为了保护敏感数据的安全,通过设置防火墙、安装防病毒软件等措施来加强数据外围保护。但是,这种保护方式限制了敏感数据的分析与利用。部分企业根据自身需求制定了一些以静态脱敏为主的数据脱敏方案,其脱敏流程扩展性差、脱敏规则固定且简单、脱敏能力有限,无法满足规模日益增长且规则日益复杂的数据脱敏需求,无法有效解决背景知识攻击等安全威胁。
本文通过分析评估当今主流数据脱敏技术特性,将多种脱敏方式相结合,建立敏感数据的发现、抽取与脱敏系统[3-4]。该系统通过对敏感数据分类,能够快速处理大量脱敏数据,支持脱敏算法与方案的配置管理,很好地适应不同的脱敏需求。系统建立脱敏任务的申请审核机制,通过权限管理使脱敏过程更有效安全。
1 数据脱敏的主流算法
1.1 k-Anonymity算法
该算法要求对任意一行的记录,所归属的相等集内的记录总数量不得少于k条,即最少有(k-1)条记录的半标识列的值与该条记录相同。对k-Anonymity数据集内的任意记录,从理论上来说,攻击者大约只有1/k的概率使被攻击的记录与具体的用户进行关联[5-6]。
该算法的缺点是容易受到链接式攻击,对属性泄露风险无法进行保护。攻击者可通过背景知识和同质属性两种攻击方式对k-Anonymity数据集内的用户属性信息进行攻击。对移除标识列的数据根据半标识列进行分组,每组最少有k条记录,每组中至少有(k-1)条记录的半标识列的值与该记录相同。
1.2 l-Diversity算法
如果任意相等集内的所有记录所对应敏感数据的集合中包含有l个合适的值,则该相等集满足l-Deversity算法。若数据集中的所有相等集全部满足l-Deversity算法,则该数据集满足l-Deversity算法。
与k-Anonymity算法相比,符合l-Deversity算法的数据集,数据泄漏所造成的风险明显降低。对l-Derversity数据集内的任意记录,从理论上来说,攻击者大约只有1/l的概率使被攻击的记录与具体的用户进行关联[7-8]。
该算法的缺点是可能难以实现且无必要实现,且不足以阻止属性公开。
1.3 t-Closeness算法
如果敏感数据在一个相等类的分布与在全局的分布之间的距离比t小,则该相等类满足t-Closeness算法。若数据集中的所有相等类全部满足t-Closeness算法,则该数据集满足t-Closeness算法。
由于t-Closeness算法对敏感信息在全局的分布与半标识列属性之间的联系进行限定。因而,减弱了特定的敏感信息与半标识列属性之间的联系,从而减少了攻击者利用敏感信息内部的分布信息来进行泄露攻击的概率,但它也会造成部分数据的丢失。因此,管理者可以通过判断t值的大小来平衡用户的隐私保护与数据的可用性[9]。
2 数据脱敏的规则
2.1 日期偏移的取整
对时间按一定的粒度进行向下或向上的偏移取整,保证时间数据按一定的分布特征对原始时间进行隐藏,即通过舍弃精度使原始数据的安全性得到保证。
例如:将时间20160301 01:01:09按照5秒钟粒度向下取整得到20160301 01:01:05。
2.2 加密
通过对脱敏数据进行加密处理,外部人员只能看到没有任何意义的经过处理后的加密数据[10]。在特定的情况下,可以给具有权限的有关人员提供密钥,来对加密后的脱敏数据进行解密处理。如通过利用非对称的加密技术,即利用数据请求方的公钥进行加密处理,然后数据请求方用私钥对获得的数据进行解密处理,从而还原出被脱敏的加密数据。
例如:将编号12345加密为abcde或23456等。其安全程度取决于采用哪种加密算法,一般根据实际情况而定。
2.3 重排
将原始数据按照特定的规则进行重新排列,对于跨行数据,采用随机互换来打破其与本行其他数据的关联关系,从而实现脱敏[11]。
例如:序号12345重排为54321,按照一定的顺序进行打乱,很像“替换”,方便在需要时还原信息,但易于破解。
2.4 数据截断
舍弃必要信息来保证数据的模糊性,仅保留部分关键信息。这是比较常用的脱敏方法,但在生产方面存在一定弊端。为解决这个问题,比如对手机号码进行数据脱敏时,可仅返回前7位数字以显示号码归属地,即将手机号码138539102456返回为1385391,最好在保留归属地的情况下,结合掩码方法进行数据脱敏。
例如:把身份证号330184190001184115截断为190001184115。
2.5 规整
将数据按照大小规整到预定义的多个档位,这是一种比较常用的脱敏方法。
例如:a)将客户资产按照规模分为高、中、低3个级别,将客户资产数据用这3个级别代替;b)将扣费额按照金额多少分为高、中、低3个级别;c)将用电量按照使用量的多少分为高、中、低3个级别。
2.6 掩码
利用通用字符(如*、X等)对敏感数据的部分内容进行统一的替换,只保留部分数据信息,这样就可以让敏感数据只公开部分内容,但信息的持有者可以很容易进行辨别。这种方法在很大程度上既可保证数据的脱敏,又可保证信息长度的不变性,在数据脱敏中被广泛使用。
例如:a)将手机号码13500010001经过掩码得到135****0001;b)把身份证号330184190001184115经过掩码得到330184********4115。
2.7 重写
参考原始数据的特征,重新生成数据。重写与整体替换较为类似,但替换后的数据与原始数据通常存在特定规则的映射关系,而重写生成的数据与原始数据则一般不具有映射关系。
例如:a)对员工工资,可使用在一定范围内随机生成的方式重新构造数据;b)对身份证号码,可在一定范围内按照规则随机生成的方式重新构造数据。
2.8 均化
针对数值型的敏感数据,在保证脱敏后数据集总值或平均值与原始数据集相同的情况下,改变数值的原始值。
例如:对客户用电量、员工工资等采用均化的脱敏方法。
2.9 散列(Hash)
对原始数据通过散列算法取散列值,使用散列值来代替原始数据。目前应用较多的散列算法是SHA-1和SHA-256等。
例如:使用散列算法,将客户的密码“123456”用其散列值“321654”来代替。对于原文空间有限的散列,还要加入随机因子。
2.10 限制返回
仅仅返回可用数据集合中一定数量的数据,并且只有在拿到所有数据后才具有意义。
例如:对于客户地址数据,可在脱敏时仅返回十六字节数据,如将“XX市XX区XX街XX巷X幢XXX室”返回为“XX市XX区XX街”。
3 数据脱敏的评估要求
3.1 真实性
数据脱敏是指在使用数据进行信息挖掘时去除不需要的敏感信息,保证信息的安全[12-13]。如果脱敏后的数据无法用来对信息进行分析与挖掘,那么这些脱敏数据也就无任何使用价值。因此,脱敏后的数据应最大限度地保留信息特征与意义,确保数据可用,信息可靠。一般需保留身份证号码、联系方式、地址的部分字段等关键信息。对于脱敏后发生改变的信息,应保留数据统计特征,即数据中所包含的统计趋势,比如用电量与用电类型的对应关系、人口的分布密度等。
3.2 有效性
脱敏的目的就是保证数据中的信息安全。数据经过脱敏处理后,必须能有效保护敏感信息。脱敏最基本的要求是将敏感信息移除、替换、隐藏,并且在已有数据的基础上,无法通过各种手段处理来得到被保护的敏感信息[14-15],或者提高处理数据的难度与开销,使其成本远远高于所获取的敏感信息。
3.3 稳定性
对数据进行脱敏时,虽然可以对敏感信息进行消除,但数据的统计特征不能被破坏,因此需要进行规范化脱敏。确保在数据要求一致的情况下,使脱敏的统计特征相同。如果结果出现统计特征的波动,会导致无法准确定位分析结果的影响因素,从而破坏分析的准确性。
3.4 适应性
在不同的数据应用场景中,对数据的安全保护存在不同级别,所需的信息也各有不同。因此,需要针对不同情况配置不同的脱敏方式、脱敏内容以及脱敏程度,以适应不同应用环境的脱敏需求。
4 数据脱敏系统的设计与实现
4.1 数据脱敏系统的设计框架
数据脱敏系统的设计架构由敏感数据的发现、敏感数据的抽取与敏感数据的脱敏3个部分组成,如图1所示。
图1 数据脱敏系统框架
4.2 数据脱敏系统的实现方法
4.2.1 敏感数据的发现方法
敏感数据的发现方法就是对系统内的所有数据先进行梳理,并从中对敏感数据进行识别,然后再对识别后的敏感数据进行标识。对云环境下海量的数据进行梳理,需要自动化手段来完成[16-17]。
在进行数据脱敏前,必须先对数据整体进行梳理。以国家敏感信息保护有关法律法规为依据,参考国内外敏感信息保护相关标准,将敏感信息分成6类,如表1所示。
表1 敏感信息分类Table 1 Classification of sensitive information
在敏感信息分类的基础上,系统利用自动化敏感数据识别工具执行数据发现工作,并降低该过程对生产系统的影响。
1)定义数据脱敏工作执行的范围,在该范围内执行敏感数据的发现工作。
2)系统录入敏感数据样本后,敏感数据识别工具提取样本数据的数据表名称、字段名称、数据记录内容、数据表备注、数据文件内容等特征信息,对这些特征信息进行统计记录,存储在敏感特征识别库中。
3)敏感数据识别工具对目标数据进行敏感数据识别,根据从样本数据获取的敏感数据特征信息,对目标数据进行直接匹配或正则表达式匹配,对匹配的目标数据进行标记。该标记与敏感数据一起流动,无法删除和篡改,从而可以对敏感数据进行有效跟踪,以确保敏感数据的安全合规性。
4)敏感数据识别工具具有扩展机制,可根据业务需要自定义敏感数据的发现逻辑。同时系统可以固化常用的敏感数据发现规则,例如身份证号、手机号等敏感数据的发现规则,避免重复定义数据发现规则。
4.2.2 敏感数据的抽取方法
在实际数据运用场景中,往往对数据有不同的需求,并不需要提供所有数据。因此,需要根据使用需求及脱敏要求,对数据进行抽取,以提高信息密度。
数据抽取有以下3种方法:
1)字段分列:截取某一字段的部分信息。
2)字段合并:将某几个字段合并为一个新字段。
3)字段匹配:将原数据表没有、但其他数据表中有的字段,有效地匹配过来。
4.2.3 敏感数据的脱敏方法
对数据进行脱敏前,需要先根据实际情况确定脱敏需求,制定脱敏方案,完成敏感数据的脱敏。
1)对那些已经被识别出来的敏感数据按照产生—采集—使用—交换—销毁的生命周期进行流程的梳理,明确用户在生命周期的各阶段对数据的访问权限及访问需求,并进行设置,同时整理、分析出需要对数据进行脱敏的业务需求。例如,在梳理过程中,会发现存在对敏感数据的访问需求和访问权限不匹配的情况(用户仅需获取敏感数据中部分内容即可,但却拥有对敏感数据内容全部的访问权限),因此,该业务场景就有对敏感数据进行数据脱敏的需求。
2)业务场景被明确后,系统按照最小够用的原则,对不同类别的敏感信息明确其脱敏要求、脱敏规则及该业务在服务水平方面的需求,以便于脱敏方案的制定。
3)脱敏方案制定后,数据脱敏工具自动完成敏感数据的脱敏工作。数据脱敏工具提供扩展机制,让用户可根据需求自定义脱敏方法。同时系统可以对敏感数据常用的脱敏规则进行固化,从而可以避免数据脱敏规则的重复定义,确保数据脱敏项目的顺利实施。
4.3 数据脱敏的系统架构
该系统以三层框架为基础,建立了一个完善的数据脱敏体系结构。系统提供与监控系统对接接口,可以建立起脱敏操作的监管审计体系[18-19],如图2所示。
图2 数据脱敏系统架构
当需要发起脱敏操作时,脱敏操作发起人通过统一登录平台接口进入脱敏系统,脱敏系统从目标数据源获取目标数据,脱敏操作发起人根据脱敏需求选择脱敏方案,提出脱敏任务申请。该申请上传至OA系统审批通过后,系统开始对目标数据进行敏感数据发现、数据抽取以及数据脱敏操作,并将脱敏后的数据输出至目标环境以供使用。
系统提供数据源与算法配置的管理,能够适应复杂的脱敏环境,完成不同的脱敏任务,具有较高的适用性与可扩展性。系统内置用户权限管理,不同职责的人员拥有不同的系统操作权限。用户无法未经脱敏任务审核直接发起数据脱敏操作,有效杜绝了脱敏方案过于简单导致的敏感数据外泄问题。同时系统可以与邮件系统、消息平台对接,便于用户的使用。
5 应用案例
数据脱敏系统的应用案例如表2所示。
表2 运用案例表Table 2 Application cases
6 结 语
通过对3种主流脱敏算法进行分析与评估,结合多种脱敏方式,构建了能够满足大数据时代下电力数据脱敏需求的系统。
1)该系统通过敏感信息分类,有效规范了脱敏流程;
2)内置多种脱敏策略,满足日常脱敏需求,在面对复杂的脱敏需求时,可以进行脱敏策略的自定义与拓展;
3)通过精准的敏感信息定位标志、高适应性的脱敏策略,满足了保留所需要信息与保护敏感信息的两大要求。