资源描述
大数据脱敏方案
-1-15
更改履历
版本号
修改编号
更改时间
更改
图表和章节号
更改简明描述
更改人
同意人
目录
1. 概述 4
1.1. 编写目标 4
1.2. 数据脱敏定义 4
1.3. 电网数据脱敏需求 4
2. 脱敏方案 5
2.1. 脱敏算法 5
2.1.1. K-Anonymity (K-匿名) 5
2.1.2. L-Diversity 5
2.1.3. T-Closeness 5
2.2. 脱敏规则 5
3. 电网应用场景 6
3.1. 云平台功效设计 7
3.2. 大数据平台功效设计 7
1. 概述
1.1. 编写目标
本文档描述了数据脱敏研究结果和方法论。意在为含有数据脱敏需求开发人员和项目提供参考和借鉴。
1.2. 数据脱敏定义
敏感数据通常指不妥使用或未经授权被人接触或修改会不利于国家利益或不利于个人依法享受个人隐私权全部信息。工业和信息化部编制《信息安全技术 公共及商用服务信息系统个人信息保护指南》明确要求,处理个人信息应该含有特定、明确和合理目标,应该在个人信息主体知情情况下取得个人信息主体同意,应该在达成个人信息使用目标以后删除个人信息。这项标准最显著特点是将个人信息分为个人通常信息和个人敏感信息,并提出了默许同意和明示同意概念。对于个人通常信息处理能够建立在默许同意基础上,只要个人信息主体没有明确表示反对,便可搜集和利用。但对于个人敏感信息,则需要建立在明示同意基础上,在搜集和利用之前,必需首先取得个人信息主体明确授权。这项标准还正式提出了处理个人信息时应该遵照八项基础标准,即目标明确、最少够用、公开通知、个人同意、质量确保、安全保障、诚信推行和责任明确,划分了搜集、加工、转移、删除四个步骤,并针对每一个步骤提出了落实八项基础标准具体要求。
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。baidu百科对数据脱敏定义为:指对一些敏感信息经过脱敏规则进行数据变形,实现敏感隐私数据 可靠保护。这么,就能够在开发、测试和其它非生产环境和外包环境中安全地使用脱敏后真实数据集。
敏感数据,又称隐私数据,常见敏感数据有: 姓名、身份证号码、地址、电话号码、银行账号、邮箱地址、所属城市、邮编、密码类 ( 如账户查询密码、取款密码、登录密码等 )、组织机构名称、营业执照号码、银行帐号、交易日期、交易金额等。
伴随大数据时代到来,大数据商业价值挖掘,用户正确定位,大数据中蕴藏巨大商业价值被逐步挖掘出来,不过同时也带来了巨大挑战–个人隐私信息 保护。个人信息和个人行为(比如位置信息、消费行为、网络访问行为)等,这些全部是人隐私,也是我们所关注一类敏感信息,在大数据价值挖掘基础上如 何保护人隐私信息,也将是数据脱敏必需处理难题。
1.3. 数据脱敏需求
伴随国家电网数据应用不停深入,有很多应用需要和外部系统对接,数据需要对外提供服务才能表现出它价值,大数据时代是数据融合时代,怎样在数据融合过程中,确保数据在开发、测试、生产、应用等各个步骤安全,成为信息安全部门关键任务。
国家电网数据脱敏需求包含:经过数据抽取、数据漂白、数据混淆等处理过程,用来满足测试、开发、培训、数据共享和数据融合场景下敏感数据保护需求,并使得数据处理过程满足国家电网敏感数据防护政策要求。
具体脱敏需求包含:
Ø 预防生产库中敏感数据泄漏
经过对生产库中身份、地址、用户卡号、手机号等敏感信息进行混淆、打乱后再提供给第三方使用,预防生产库中敏感数据泄漏。
Ø 确保测试、开发、应用阶段数据关联性
经过脱敏策略和算法,确保脱敏数据有效性(保持原有数据类型和业务格式不变)、完整性(确保长度不变、数据含义不丢失)、关系性(保持表间、表内数据关联关系)。以提升测试、开发、应用步骤数据真实性和可用性。
Ø 确保数据维护和数据共享安全
对数据库访问者用户名、IP、工具类型、时间等进行监控,控制数据访问结果差异化,数据结果能够划分为真实数据、掩码数据、数据阻断、行限定数据等,经过访问者不一样访问策略,满足细粒度数据访问需求。比如DBA可维护但无法查看敏感数据、业务系统能够访问真实数据、分析系统能够访问脱敏后数据。
Ø 确保隐私数据管理政策合规性
数据脱敏和数据处理必需在国家电网相关政策要求许可情况下进行,脱敏规则符合国家电网数据管理要求。
2. 脱敏方案
2.1. 脱敏步骤
数据脱敏步骤通常分为:敏感数据发觉、敏感数据梳理、脱敏方案制订、脱敏任务实施四大步骤,结合数据脱敏算法、数据脱敏规则和脱敏环境来达成最好数据脱敏效果。
2.1.1. 敏感数据发觉
敏感数据发觉分为人工发觉和自动发觉两种。对于国家电网相对固定业务数据,能够采取人工甄别,明确指定那些列、那些库数据是需要脱敏,这些数据通常数据结构和数据长度不会有改变,大部分为数值型和固定长度字符。比如:单位代码、户号、户名、用电地址等标识列,针对这些数据能够经过人工指定脱敏规则和不一样数据访问策略,确保敏感信息不被泄漏。自动识别依据人工指定或预定义敏感数据特征,借助敏感数据信息库和分词系统,自动识别数据库中包含敏感信息,相对于人工识别能够降低工作量和预防遗漏。通常采取自动发觉为主,结合人工发觉和审核,来完成敏感数据发觉和定义,最终形成完善敏感数据字典。
2.1.2. 敏感数据梳理
在敏感数据发觉基础上,完成敏感数据列、敏感数据关系调整,以确保数据关联关系。经过屏蔽、变形、替换、随机、格式保留加密、强加密等数据脱敏算法,针对不一样数据类型进行数据掩码扰乱。
2.1.3. 脱敏方案制订
对于不一样数据脱敏需求,在基础脱敏算法基础上,可配置专门脱敏策略。脱敏方案制订关键依靠脱敏策略和脱敏算法复用来实现,经过配置和扩展脱密算法以制订最优方案。
2.1.4. 脱敏任务实施
脱敏任务停止、开启、暂停等操作,支持任务并行处理,支持脱敏任务中止续延等。
2.2. 脱敏算法
2.2.1. 脱敏算法特征
通常依据不一样数据特征选择不一样脱敏算法,对常见数据如姓名、证件号、银行账户、金额、日期、住址、电话号码、Email 地址、车牌号、车架号、企业名称、工商注册号、组织机构代码、纳税人识别号等敏感数据进行脱敏,脱敏算法通常包含屏蔽、变形、替换、随机、格式保留加密(FPE)和强加密算法(如AES )。
脱敏算法含有以下特征:
Ø 同义替换
使用相同含义数据替换原有敏感数据,如姓名脱敏后仍然为有意义姓名,住址脱敏后仍然为住址。
Ø 部分数据遮蔽
将原数据中部分或全部内容,用“*”或“# ”等字符进行替换,遮盖部分或全部原文。
Ø 混合屏蔽
将相关列作为一个组进行屏蔽,以确保这些相关列中被屏蔽数据保持一样关系,比如,城市、省、邮编在屏蔽后保持一致。
Ø 确定性屏蔽
确保在运行屏蔽后生成可反复屏蔽值。可确保特定值(如,用户号、身份证号码、银行卡号)在全部数据库中屏蔽为同一个值。
Ø 可逆脱敏
确保脱敏后数据可还原,便于将第三方分析机构和内部分析团体基于脱敏后数据上分析结果还原为业务数据。
2.2.2. K-Anonymity (K-匿名)
算法描述:
要求对于任意一行统计,其所属相等集内统计数量大于k,即最少有k-1条统计半标识列属性值和该条统计相同。
理论上来说,对于 K-Anonymity 数据集,对于任意统计,攻击者只有 1/k 概率将该统计和具体用户关联。
算法步骤:
Ø 先移除标识列
Ø 泛化半标识列
算法优缺点:
Ø 优点:
能够用于保护个人标识泄漏风险。
Ø 缺点:
轻易受到链接式攻击,无法保护属性泄露风险。对于 K-Anonymity 数据集,攻击者可能经过 同质属性攻击 和 背景知识攻击 两种方法攻击用户属性信息。
对移除标识列数据依据半标识列进行分组,每组最少有 k 条统计,每组中最少有 k-1 条统计半标识列值和该统计相同。
2.2.3. L-Diversity
算法描述:
Ø 假如对于任意相等集内全部统计对应敏感数据集合,包含 L 个 “适宜” 值,则称该相等集是满足 L-Deversity 。假如数据集中全部相等集全部满足 L-Deversity , 则称该数据集满足 L-Deversity。
Ø 相对于K-Anonymity 标准,符合L-Deversity 标准数据集显著降低了属性数据泄漏风险。对于满足L-Derversity 数据集,理论上,攻击者最多只有 1/L 概率能够属性泄露攻击,将特定用户和其敏感信息关联起来。
Ø 经过插入干扰数据结构符合 L-Diversity 数据集。
在K-Anonymity基础上,每个数据集中,其敏感信息列有 L 个不一样值,攻击者只有 1/L 几率取得正确敏感信息。
2.2.4. T-Closeness
算法描述:
L-Diversity 是经过约束 P diversity 属性,尽可能降低B0 和B2之间信息量差距,差距越小,说明隐私信息泄漏越少。
T-Closeness 约束则期望降低B1 和 B2 之间信息量差距,降低攻击者从敏感数据全局分布信息和相等集分布信息之间得到更多个人隐私信息。
假如一个相等类敏感数据分布和敏感数据全局分布之间距离小于T,则称该相等类满足 T-Closeness约束。假如数据集中全部相等类全部满足 T-Closeness,则称该数据集满足T-Closeness.
T-Closeness约束限定了半标识列属性和敏感信息全局分布之间联络,减弱了半标识列属性和特定敏感信息联络,降低攻击者经过敏感信息分布信息进行属性泄露攻击可能性。不过同时也肯定造成了一定程度信息丢失,所以管理者经过T值大小平衡数据可用性和用户隐私保护。
2.2.5. 算法用例
2.2.5.1原始数据
我们以用采取户数据为例:
ORG_NO(单位代码)
CONS_NO(户号)
CONS_NAME(户名)
ELEC_ADDR(用电地址)
ELEC_TYPE_CODE(用电类型)
LINE_ID
TRADE_CODE
VOLT_CODE
CONTRACT_CAP
浙江长兴县供电企业
浙江省湖州市长兴县泗安镇塔上行政村张家湾自然村
402
1950
4710
AC00101
315
浙江奇碟汽车零部件
浙江省湖州市长兴县泗安镇五里渡行政村五里渡新村自然村
100
1950
3720
AC00101
1880
华能长兴光伏发电有限责任企业
浙江省湖州市长兴县泗安镇三里亭行政村亭子头自然村杰夫厂区
100
1950
1710
AC00102
1240
长兴县泗安镇钱庄村村民委员会
浙江省湖州市长兴县泗安镇钱庄行政村刘小湾自然村
100
1950
1540
AC00101
80
长兴县泗安镇钱庄村村民委员会
浙江省湖州市长兴县泗安镇钱庄行政村刘小湾自然村
403
1950
2540
AC00102
80
浙江物产汽车安全科技
浙江省湖州市长兴县泗安镇赵村村行政村赵村庙自然村
100
1950
1610
AC00102
630
华能长兴光伏发电有限责任企业
浙江省湖州市长兴县泗安镇三里亭村行政村亭子头自然村
402
1950
4410
AC00101
2500
长兴泗安严义明蔬菜种植园
浙江省湖州市长兴县泗安镇塔上村行政村塔上大湾自然村
403
1950
2500
AC00101
80
浙江长兴县供电企业
浙江省湖州市长兴县泗安镇塔上行政村张家湾自然村
402
1950
4710
AC00101
315
2.2.5.2 K-Anonymity( k=2 )
ORG_NO
CONS_NO
ELEC_ADDR
ELEC_TYPE_CODE
LINE_ID
TRADE_CODE
VOLT_CODE
CONTRACT_CAP
35201*
浙江省湖州市长兴县泗安镇
402
1950
>4000
AC00101
315
35201*
浙江省湖州市长兴县泗安镇
402
1950
>4000
AC00101
2500
35200*
浙江省湖州市长兴县泗安镇
100
1950
>3000
AC00101
1880
35200*
浙江省湖州市长兴县泗安镇
100
1950
>3000
AC00101
80
35200*
浙江省湖州市长兴县泗安镇
403
1950
>
AC00102
80
35200*
浙江省湖州市长兴县泗安镇
403
1950
>
AC00102
80
35201*
浙江省湖州市长兴县泗安镇
100
1950
>1000
AC00102
1240
35201*
浙江省湖州市长兴县泗安镇
100
1950
>1000
AC00102
630
2.2.5.3 L-Diversity( L=2 )
ORG_NO
CONS_NO
ELEC_ADDR
ELEC_TYPE_CODE
LINE_ID
TRADE_CODE
VOLT_CODE
CONTRACT_CAP
35201*
浙江省湖州市长兴县泗安镇
402
1950
>4000
AC00101
315
35201*
浙江省湖州市长兴县泗安镇
402
1950
>4000
AC00101
2500
35200*
浙江省湖州市长兴县泗安镇
100
1950
>3000
AC00101
1880
35200*
浙江省湖州市长兴县泗安镇
100
1950
>3000
AC00101
80
35200*
浙江省湖州市长兴县泗安镇
403
1950
>
AC00102
80
35200*
浙江省湖州市长兴县泗安镇
403
1950
>
AC00102
80
35200*
浙江省湖州市长兴县泗安镇
403
1950
>
AC00102
120
35201*
浙江省湖州市长兴县泗安镇
100
1950
>1000
AC00102
1240
2.3. 脱敏规则
脱敏规则,通常脱敏规则分类为可恢复和不可恢复两类。
可恢复类,指脱敏后数据能够经过一定方法,能够恢复成原来敏感数据,这类脱敏规则关键指各类加解密算法规则。
不可恢复类,指脱敏后数据被脱敏部分使用任何方法全部不能恢复出。通常可分为替换算法和生成算法两大类。替换算法立即需要脱敏部分使用定义好字符或字符串替换,生成类算法则更复杂部分,要求脱敏后数据符合逻辑规则,即是“看起来很真实假数据”。
常见脱敏规则关键有:
编号
名称
描述
示例
1
Hiding(隐匿)
将数据替换成一个常量,常见作不需要该敏感字段时
500 -> 0
630 -> 0
2
Hashing(hash映射)
将数据映射为一个hash值(不一定是一一映射),常见作将不定长数据应设成定长hash值
Jim,Green ->
Tom,Cluz ->
3
Permutation(唯一值映射)
将数据映射为唯一值,许可依据映射值找回原始值,支持正确聚合或连接操作
Smith -> Clemetz
Jones -> Spefde
4
Shift(偏移)
将数量值增加一个固定偏移量,隐藏数值部分特征
253 -> 1253
254 -> 1254
5
Enumeration(排序映射)
将数据映射为新值,同时保持数据次序
500 -> 25000
400 ->0
6
Truncation(截断)
将数据尾部阶段,只保留前半部分
->021
->010
7
Prefix-preserving(局部混淆)
保持IP前n位不变,混淆其它部分
10.199.90.105->10.199.32.12
10.199.90.106->10.199.56.192
8
Mask(掩码)
数据长度不变,但只保留部分数据信息
2345323 -> 234—23
14562334 -> 145—34
9
Floor(偏移取整)
数据或是日期取整
28->20
0520 12:30:45 ->0520 12:00:00
2.4. 脱敏环境
数据脱敏环境通常根据生产环境和非生产环境(开发、测试、外包、数据分析等)进行划分,依据数据脱敏产品应用场景将数据脱敏划分为静态数据脱敏(static data masking)和动态数据脱敏(dynamic data masking),静态数据脱敏(SDM)和动态数据脱敏(DDM)关键区分是:是否在使用敏感数据当初进行脱敏。
静态数据脱敏(SDM)通常见在非生产环境,在敏感数据从生产环境脱敏完成以后再在非生产环境使用,通常见于处理测试、开发库需要生产库数据量和数据间关联,以排查问题或进行数据分析等,但又不能将敏感数据存放于非生产环境问题。
动态数据脱敏(DDM)通常见在生产环境,在访问敏感数据当初进行脱敏,通常见来处理在生产环境需要依据不一样情况对同一敏感数据读取时需要进行不一样等级脱敏问题。
3. 数据脱敏方法
根据数据处理方法不一样,能够将数据脱敏分为静态数据脱敏和动态数据脱敏两大类。
3.1. 静态数据脱敏
静态数据脱敏指将数据文件进行去敏感、去隐私化处理同时确保数据之间关联关系。外发给第三方企业进行开发测试或是数据分析。得到分析结果后能够将分析出数据进行回溯。
该脱敏方法适适用于项目开发单位需要获取完整数据才能确保数据分析工作顺利完成,对于数据提供方,又不期望敏感数据泄漏出去,在这种情况下,就需要对数据进行可回溯脱敏方法,确保发送出去数据不包含敏感信息,当项目开发单位开发完成后,将分析系统或结果数据回溯成真实结果数据。这么既确保了开发过程中数据共享和结果一致性,又确保了真实数据不会在开发过程中泄漏。
静态数据脱敏很适合数据拥有者在和多个外部开发团体数据融合和数据共享中使用,确保开发、测试步骤不会泄漏数据。
3.2. 动态数据脱敏
动态数据脱敏指用户在前端应用处调取后台数据库中敏感数据时,进行数据脱敏,再反馈至前台展现。可在通讯层面上,经过代理布署方法,对业务系统数据库中敏感数据进行透明、实时脱敏。通常依据用户角色、职责和其它IT 定义身份特征,动态对生产数据库返回数据进行专门屏蔽、加密、隐藏和审计,可确保不一样等级用户根据其身份特征恰如其分访问敏感数据,而且不需要对生产数据库中数据进行任何改变。动态数据脱敏一样支持同义替换、部分遮蔽、混合脱敏、确定性脱敏及可逆脱敏,通常可依据不一样用户身份特征,指定对应数据脱敏算法。
经过动态脱敏功效,能够帮助国家电网企业快速、低风险、平稳提供生产数据库实时隐私保护。经典应用场景表现在:
1:保护生产环境
对于国家电网大型复杂系统环境下,为了给用户提供高水平服务,有时意味着开发人员、数据库管理员、设计人员、专业顾问和其它系统需要不受限制访问生产数据,方便快速处理重大问题和快速响应。由此造成了对用户信息、电话、地址等隐私信息违规访问路径。动态数据脱敏能够有效处理这一风险,而且不会丧失快速响应能力。
2:降低外包风险
对于大型复杂系统,往往依靠大量外包IT人员和开发单位来开展和维护业务,这些外包人员能够经过应用程序,报表和开发、运维工具访问生产数据,这意味着隐私数据完全暴露在不可控环境中;动态数据脱敏能够对不一样用户和应用访问进行实时隐私数据屏蔽,帮助国家电网有效保护关键数据资产访问。
3:保护通用帐户风险
数据库维护人员常常会使用强度很弱通用密码,便于开发人员和DBA访问和监控生产数据库,便利同时也为获取关键隐私数据开了方便之门。经过提供过敏后数据掩码,首先能够预防来自非生产环境登录,而且能够依据规则向不一样登录用户和系统提供经过脱敏数据。
4. 大数据数据脱敏技术
大数据平台经过将全部数据整合起来,充足分析和挖掘数据内在价值,为业务部门提供数据平台,数据产品和数据服务。大数据平台接入数据中可能包含很多用户隐私和敏感信息,如用电统计、用电用户支付信息、国家机密信息等,这些数据存在可能泄漏风险。大数据平台通常经过用户认证,权限管理和数据加密等技术确保数据安全,不过这并不能完全从技术上确保数据安全。严格来说,任何有权限访问用户数据人员,如ETL工程师或是数据分析人员等,全部有可能造成数据泄漏风险。其次,没有访问用户数据权限人员,也可能有对该数据进行分析挖掘需求,数据访问约束大大限制充足挖掘数据价值范围。数据脱敏经过对数据进行脱敏,在确保数据可用性同时,也在一定范围内确保恶意攻击者无法将数据和具体用户关联到一起,从而确保用户数据隐私性。数据脱敏方案作为大数据平台整体数据安全处理方案关键组成部分,是构建安全可靠大数据平台必不可少功效特征。
用户隐私数据保护和挖掘用户数据价值是两个相互冲突矛盾体,根本数据脱敏,需要抹去全部用户标识信息,使得数据潜在分析价值大大降低。其次,完全保留用户隐私数据信息,可最大化数据分析价值,同时造成用户隐私泄露风险无法控制。所以大数据脱敏平台设计目标并不是实现工具算法用来完全抹去全部用户标识信息,而是包含以下多个目标:
Ø 数据泄露风险可控。首先,实现基于大数据平台脱敏算法库,可并行,高效根据脱敏规则对隐私数据进行脱敏。其次,基于数据脱敏理论基础,建立用户隐私数据泄露风险衡量模型,可定性定量正确衡量数据可能发生泄露风险。
Ø 可管理。结合大数据平台用户认证体系,权限管理体系,和隐私数据不一样保护等级权限管理体系,实现对隐私数据基于审批数据访问机制。结合企业制度,规范,法务等管理,实现在尽可能保护用户隐私数据,降低数据泄露风险前提下,最大化保留数据分析挖掘价值。
Ø 可审计。对数据访问要确保可回溯,可审计,当发生数据泄露时,要确保能够经过审计日志找到对应泄露人员。
大数据平台数据起源比较广泛,依据现在流行数据采集技术,能够分为流式数据和批量数据两种。
4.1. 流式数据脱密
流式数据是指不停产生、实时计算、动态增加且要求立即响应数据,它含有海量和实时性等特点,通常将实时或准实时数据处理技术归为流式数据处理技术。包含:Apache Storm、Spark Streaming等。
1. 基于Storm流式数据脱敏
Storm是一个分布式,可靠,容错数据流处理系统。Storm集群输入流由一个被称作spout组件管理,spout把数据传输给bolt, bolt要么把数据保留到某种存放器,要么把数据传输给其它bolt。一个Storm集群就是在一连串bolt之间转换spout传过来数据。
对于一个许可增量计算高速事件处理系统,Storm会是最好选择。它能够应对你在用户端等候结果同时,深入进行分布式计算需求,能够使用开箱即用分布式RPC。同时Storm使用Apache Thrift,你能够用任何编程语言来编写拓扑结构。
因为storm数据处理方法是增量实时处理,我们数据脱敏模块应该含有增量数据脱敏功效。当数据源源不停过来,此时我们并没有拿到全量数据,所以基于全量数据脱敏算法这时候是不适用,不过我们脱敏模块能够去读取历史数据并结合对应算法进行数据脱敏,将敏感词去掉,依据脱敏规则将数据做泛化处理。流式数据脱敏优势是从数据发生时刻就进行了数据处理。不足之处是无法利用全量数据做复杂关联处理。
数据处理步骤以下图:
2. 基于Spark Streaming流式数据脱敏
说到微批处理,假如你必需有状态计算,恰好一次递送,而且不介意高延迟话,那么能够考虑Spark Streaming,尤其假如你还计划图形操作、机器学习或访问SQL话,Apache Sparkstack许可你将部分library和数据流相结合(Spark SQL,Mllib,GraphX),它们会提供便捷一体化编程模型。尤其是数据流算法(比如:K均值流媒体)许可Spark实时决议促进。
4.2. 批量数据脱敏
批量数据接入是指数据源来自一个稳定、基础不变存放介质,经过数据扫描方法一次性将数据采集到大数据平台来,数据以历史数据为主,数据源通常来自文件、关系型数据库、nosql数据库等。处理技术包含:flume、sqoop等。批量数据脱敏能够在数据导入过程中进行脱敏,也能够在数据进入大数据平台后,调用脱敏程序模块来进行脱敏,批量数据脱敏能够结合数据关联关系,利用复杂脱敏算法以达成愈加好脱敏效果,基于flume数据采集方法,能够经过编写拦截器,在拦截器中调用数据脱敏程序,输出脱敏后数据。Sqoop是适适用于关系型数据库数据采集,能够经过建立中间表,编写UDF程序方法,最终经过任务调度程序,批量对数据进行数据脱敏。
数据处理步骤以下图:
5. 电力数据脱敏
5.1. 营销数据
5.2. 调度数据
5.3. 运检数据
5.4. SCADA数据
展开阅读全文